WooCommerce Germanized - Version 1.3.0

Version Description

  • Feature - Better theme compatibility (no template overriding required any longer)
  • Feature - Unit editor (taxonomy)
  • Feature - WPML compatibility
  • Feature - Better shipping time assignment
  • Feature - Trusted Shops Review Collector
  • Feature - Fallback-Mode for users facing problems within checkout
  • Feature - "Review your order" notice within checkout
  • Fix - Different tax rates for variations supported
  • Fix - WP-Cron incompatibility
  • Fix - Language problems while overriding cart total strings
Download this release

Release Info

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

Code changes from version 1.2.3 to 1.3.0

Files changed (62) hide show
  1. assets/css/font-awesome.min.css +1 -1
  2. assets/css/woocommerce-gzd-activation.css +5 -2
  3. assets/css/woocommerce-gzd-activation.min.css +1 -0
  4. assets/css/woocommerce-gzd-admin.css +40 -0
  5. assets/css/woocommerce-gzd-admin.min.css +1 -0
  6. assets/css/woocommerce-gzd-layout.css +21 -7
  7. assets/css/woocommerce-gzd-layout.min.css +1 -0
  8. assets/images/pro/settings-agbs.png +0 -0
  9. assets/images/pro/settings-inline-contract.png +0 -0
  10. assets/images/pro/settings-inline-invoices.png +0 -0
  11. assets/images/pro/settings-inline-vat.png +0 -0
  12. assets/images/pro/settings-invoices.png +0 -0
  13. assets/images/pro/settings-widerruf.png +0 -0
  14. assets/js/add-to-cart-variation.js +10 -0
  15. assets/js/add-to-cart-variation.min.js +4 -0
  16. assets/js/admin/settings.js +7 -0
  17. assets/js/admin/settings.min.js +1 -0
  18. assets/js/checkout.js +4 -0
  19. assets/js/checkout.min.js +1 -0
  20. assets/js/revocation.min.js +1 -0
  21. i18n/languages/woocommerce-germanized-de_DE.mo +0 -0
  22. i18n/languages/woocommerce-germanized-de_DE.po +523 -335
  23. includes/abstracts/abstract-wc-gzd-payment-gateway.php +0 -90
  24. includes/abstracts/abstract-wc-gzd-product.php +69 -24
  25. includes/admin/class-wc-gzd-admin-welcome.php +39 -21
  26. includes/admin/class-wc-gzd-admin.php +12 -2
  27. includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php +17 -33
  28. includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php +24 -0
  29. includes/admin/settings/class-wc-gzd-settings-germanized.php +119 -27
  30. includes/admin/views/html-notice-theme-incompatibility.php +1 -1
  31. includes/admin/views/html-notice-theme-not-ready.php +1 -1
  32. includes/admin/views/html-settings-pro.php +31 -0
  33. includes/admin/views/html-settings-section.php +19 -0
  34. includes/admin/views/html-settings-sidebar.php +21 -0
  35. includes/class-wc-gzd-ajax.php +32 -0
  36. includes/class-wc-gzd-cart.php +1 -1
  37. includes/class-wc-gzd-checkout.php +10 -6
  38. includes/class-wc-gzd-dependencies.php +82 -0
  39. includes/class-wc-gzd-emails.php +30 -15
  40. includes/class-wc-gzd-install.php +17 -1
  41. includes/class-wc-gzd-payment-gateways.php +104 -13
  42. includes/class-wc-gzd-post-types.php +31 -0
  43. includes/class-wc-gzd-product-variation.php +0 -59
  44. includes/class-wc-gzd-revocation.php +0 -2
  45. includes/class-wc-gzd-trusted-shops.php +104 -8
  46. includes/class-wc-gzd-units.php +26 -5
  47. includes/class-wc-gzd-wpml-helper.php +54 -0
  48. includes/wc-gzd-cart-functions.php +67 -10
  49. includes/wc-gzd-core-functions.php +11 -0
  50. includes/wc-gzd-template-functions.php +63 -28
  51. includes/wc-gzd-template-hooks.php +69 -25
  52. readme.txt +52 -20
  53. templates/checkout/edit-data-notice.php +21 -0
  54. templates/checkout/form-pay.php +0 -101
  55. templates/checkout/review-order-2-2.php +3 -16
  56. templates/checkout/{review-order.php → review-order-fallback.php} +6 -22
  57. templates/checkout/review-order-product-table.php +38 -0
  58. templates/emails/{email-order-items.php → email-order-items-2-2.php} +0 -0
  59. templates/global/small-business-info.php +5 -1
  60. templates/single-product/price-unit.php +1 -1
  61. woocommerce-germanized.php +99 -95
  62. wpml-config.xml +5 -0
assets/css/font-awesome.min.css CHANGED
@@ -1,4 +1,4 @@
1
  /*!
2
  * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
3
  * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
- */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.2.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}
1
  /*!
2
  * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
3
  * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
+ */.fa,.fa-stack{display:inline-block}.fa-fw,.fa-li{text-align:center}@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.2.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0)format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff?v=4.2.0)format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.2.0)format('truetype'),url(../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular)format('svg');font-weight:400;font-style:normal}.fa{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}
assets/css/woocommerce-gzd-activation.css CHANGED
@@ -1,6 +1,5 @@
1
-
2
  .wc-gzd-logo {
3
- display: inline-block;
4
  text-indent: -9999px;
5
  width: 298px;
6
  vertical-align: top;
@@ -35,6 +34,7 @@
35
  }
36
  .dashboard_page_wc-gzd-about .wc-vendipro-features {
37
  margin-top: 0;
 
38
  }
39
  .dashboard_page_wc-gzd-about .wc-vendipro-features div h4 {
40
  margin-top: 0.5em;
@@ -54,6 +54,9 @@
54
  border-top: 1px solid #CCC;
55
  padding-top: 0;
56
  }
 
 
 
57
  .dashboard_page_wc-gzd-about .vendipro .left {
58
  display: inline-block;
59
  width: 40%;
 
1
  .wc-gzd-logo {
2
+ display: inline-block !important;
3
  text-indent: -9999px;
4
  width: 298px;
5
  vertical-align: top;
34
  }
35
  .dashboard_page_wc-gzd-about .wc-vendipro-features {
36
  margin-top: 0;
37
+ border: none;
38
  }
39
  .dashboard_page_wc-gzd-about .wc-vendipro-features div h4 {
40
  margin-top: 0.5em;
54
  border-top: 1px solid #CCC;
55
  padding-top: 0;
56
  }
57
+ .dashboard_page_wc-gzd-about .feature-section {
58
+ border: none;
59
+ }
60
  .dashboard_page_wc-gzd-about .vendipro .left {
61
  display: inline-block;
62
  width: 40%;
assets/css/woocommerce-gzd-activation.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .wc-gzd-logo{display:inline-block!important;text-indent:-9999px;width:298px;vertical-align:top;margin-top:2rem;height:89px;background:url(../images/wc-germanized.svg)no-repeat;background-size:298px auto}.about-text,.dashboard_page_wc-gzd-about .vendipro .left,.vendipro-buttons a,.vendipro-buttons p,.wc-gzd-fb,.wc-gzd-fb iframe,.wc-gzd-twitter{display:inline-block}.about-text{padding:0;max-width:50%;width:50%;margin:2rem 0 0 5%}.wc-gzd-twitter iframe{width:130px!important}.wc-gzd-fb iframe{position:relative;top:5px}.dashboard_page_wc-gzd-about h1{width:100%;margin-right:0}.dashboard_page_wc-gzd-about .wc-vendipro-features{margin-top:0;border:none}.dashboard_page_wc-gzd-about .wc-vendipro-features div h4{margin-top:.5em;font-size:1.1em;line-height:1.1em}.vendipro-buttons p{font-size:.8em;padding-top:3px;margin:0 0 0 5px}.dashboard_page_wc-gzd-about .changelog{margin-top:3em;border-top:1px solid #CCC;padding-top:0}.dashboard_page_wc-gzd-about .feature-section{border:none}.dashboard_page_wc-gzd-about .vendipro .left{width:40%;padding-right:2em;vertical-align:top}.dashboard_page_wc-gzd-about .vendipro .right{display:inline-block;vertical-align:top;width:50%}.dashboard_page_wc-gzd-about .vendipro .right p:first-child{margin-top:5px}.dashboard_page_wc-gzd-about .vendipro .left img{width:100%;border:1px solid #CCC;border-radius:3px}.woocommerce-gzd-message .button-primary,p.wc-gzd-actions a.button-primary{background-color:#262626!important;border:1px solid #000!important}.woocommerce-gzd-message .button-primary:hover,p.wc-gzd-actions a.button-primary:hover{background-color:#363636!important;border:1px solid #000!important}.woocommerce-gzd-message .form-table tr td,.woocommerce-gzd-message .form-table tr th{padding:.7rem 0;margin:0}.woocommerce-gzd-message a.wc-gzd-skip{opacity:.7}.woocommerce-gzd-message{border-left:4px solid #bb2525!important}
assets/css/woocommerce-gzd-admin.css CHANGED
@@ -29,6 +29,10 @@ table.data_table tr td p.form-field {
29
  width: 30%;
30
  }
31
 
 
 
 
 
32
  .wc-gzd-admin-settings-sidebar img {
33
  width: 100%;
34
  }
@@ -66,6 +70,42 @@ table.data_table tr td p.form-field {
66
  margin-right: 1em;
67
  }
68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  table.wc-gzd-tax-example tr th, table.wc-gzd-tax-example tr td {
70
  padding: 5px;
71
  font-size: 0.9em;
29
  width: 30%;
30
  }
31
 
32
+ .wc-gzd-admin-settings-agbs, .wc-gzd-admin-settings-widerruf {
33
+ width: 100%;
34
+ }
35
+
36
  .wc-gzd-admin-settings-sidebar img {
37
  width: 100%;
38
  }
70
  margin-right: 1em;
71
  }
72
 
73
+ .wc-gzd-premium-section-tab, .wc-gzd-pro {
74
+ font-size: 9px;
75
+ background: #0074a2;
76
+ border-radius: 3px;
77
+ line-height: 9px;
78
+ color: #FFF;
79
+ text-align: center;
80
+ text-transform: uppercase;
81
+ padding: 1px 3px;
82
+ position: relative;
83
+ top: -1px;
84
+ }
85
+
86
+ .wc-gzd-pro {
87
+ background: #222;
88
+ text-decoration: none;
89
+ }
90
+
91
+ .wc-gzd-pro:hover {
92
+ color: #FFF;
93
+ }
94
+
95
+ .subsubsub li a:hover .wc-gzd-premium-section-tab {
96
+ background: #2ea2cc;
97
+ }
98
+
99
+ .subsubsub li a.current .wc-gzd-premium-section-tab {
100
+ background: #222;
101
+ }
102
+
103
+ .wc-gzd-premium img, .forminp-image img {
104
+ width: 100%;
105
+ height: auto;
106
+ opacity: 0.5;
107
+ }
108
+
109
  table.wc-gzd-tax-example tr th, table.wc-gzd-tax-example tr td {
110
  padding: 5px;
111
  font-size: 0.9em;
assets/css/woocommerce-gzd-admin.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .wc-gzd-admin-settings,.wc-gzd-admin-settings-sidebar{display:inline-block;box-sizing:border-box;vertical-align:top}.wc-gzd-button,.wc-gzd-button:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 rgba(0,0,0,.15)!important}table.data_table tr td p.form-field{margin:0!important;padding:0!important}.variable_cart_mini_desc .wp-editor-tools{margin-top:-3em}.variable_cart_mini_desc_pre .wp-editor-tools{margin-top:-2em}.wc-gzd-admin-settings{width:70%;border-right:1px solid #CCC;padding-right:2%}.wc-gzd-admin-settings-sidebar{padding-left:2%;margin-left:-4px;width:30%}.wc-gzd-admin-settings-agbs,.wc-gzd-admin-settings-sidebar img,.wc-gzd-admin-settings-widerruf{width:100%}.wc-gzd-admin-settings-sidebar .browser{border:1px solid #CCC;border-radius:3px}.wc-gzd-admin-settings-sidebar .small{font-size:.9em;display:block;margin-top:.5em}._billing_address_1_field,._billing_title_field,._shipping_address_1_field,._shipping_title_field{width:100%!important}.wc-gzd-button{background-color:#7b9f35!important;border:1px solid #557020!important}.wc-gzd-button:hover{background-color:#73982a!important;border:1px solid #557020!important}.wc-gzd-button-wrapper .button{margin-right:1em}.wc-gzd-premium-section-tab,.wc-gzd-pro{font-size:9px;background:#0074a2;border-radius:3px;line-height:9px;color:#FFF;text-align:center;text-transform:uppercase;padding:1px 3px;position:relative;top:-1px}.wc-gzd-pro{background:#222;text-decoration:none}.wc-gzd-pro:hover{color:#FFF}.subsubsub li a:hover .wc-gzd-premium-section-tab{background:#2ea2cc}.subsubsub li a.current .wc-gzd-premium-section-tab{background:#222}.forminp-image img,.wc-gzd-premium img{width:100%;height:auto;opacity:.5}table.wc-gzd-tax-example tr td,table.wc-gzd-tax-example tr th{padding:5px;font-size:.9em}table.wc-gzd-tax-example tr td:first-child,table.wc-gzd-tax-example tr th:first-child{padding-left:0}
assets/css/woocommerce-gzd-layout.css CHANGED
@@ -47,6 +47,11 @@
47
  display: inline;
48
  width: auto;
49
  }
 
 
 
 
 
50
  .products .wc-gzd-additional-info {
51
  font-size: 0.8em;
52
  margin: 0.7rem 0 0.7rem 0;
@@ -73,16 +78,18 @@ p.footer-info {
73
  display: inline-block;
74
  background: transparent url(../images/trusted-shops-badge.png) no-repeat;
75
  }
76
- .order_details li:first-child {
77
- padding-left: 0;
78
- margin-left: 0;
79
- }
80
- .woocommerce dl.customer_details {
81
- margin-left: 0;
82
- }
83
  .wc-gzd-item-desc p {
84
  font-size: 0.9em;
85
  }
 
 
 
 
 
 
 
 
 
86
  table.product-details-inner {
87
  table-layout:fixed;
88
  margin: 0;
@@ -107,6 +114,13 @@ table.product-details-inner tr td:last-child {
107
  float: none;
108
  margin-left: 0.5rem;
109
  }
 
 
 
 
 
 
 
110
  #eKomiSeal_default img {
111
  width: 100% !important;
112
  height: 100% !important;
47
  display: inline;
48
  width: auto;
49
  }
50
+ .unit-price-cart {
51
+ font-size: 0.9em;
52
+ display: block;
53
+ margin-top: 5px;
54
+ }
55
  .products .wc-gzd-additional-info {
56
  font-size: 0.8em;
57
  margin: 0.7rem 0 0.7rem 0;
78
  display: inline-block;
79
  background: transparent url(../images/trusted-shops-badge.png) no-repeat;
80
  }
 
 
 
 
 
 
 
81
  .wc-gzd-item-desc p {
82
  font-size: 0.9em;
83
  }
84
+ .wc-gzd-edit-data-notice {
85
+ background: #EEE;
86
+ display: inline-block;
87
+ padding: 1em;
88
+ }
89
+ .wc-gzd-edit-data-notice p.wc-gzd-info {
90
+ margin: 0;
91
+ padding: 0;
92
+ }
93
  table.product-details-inner {
94
  table-layout:fixed;
95
  margin: 0;
114
  float: none;
115
  margin-left: 0.5rem;
116
  }
117
+ .wc-gzd-product-name-left, .wc-gzd-product-name-right {
118
+ float: left;
119
+ }
120
+ .wc-gzd-product-name-left {
121
+ max-width: 15%;
122
+ margin-right: 1em;
123
+ }
124
  #eKomiSeal_default img {
125
  width: 100% !important;
126
  height: 100% !important;
assets/css/woocommerce-gzd-layout.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .entry-content .woocommerce .place-order .form-row,.entry-content .woocommerce .place-order .form-row input[type=checkbox]{padding:0}.woocommerce-checkout p.terms input[type=checkbox],.woocommerce-checkout p.terms label.checkbox{display:inline;width:auto}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.trusted-shops-badge{background:url(../images/trusted-shops-badge@2x.png)no-repeat;background-size:100px 100px}.trusted-shops-badge-smaller{background-size:75px 75px}}.cart_totals .wc-gzd-additional-wrapper,.entry-content .woocommerce .checkout-btn-wrap,.shop_table .product-name-inner tr td:last-child{text-align:right}.woocommerce-checkout .shop_table{background-color:#EEE}.includes_tax{display:none!important}#order_review_heading{display:none}.woocommerce-checkout .shop_table tr td p{margin-bottom:0}.woocommerce-checkout .shop_table td,.woocommerce-checkout .shop_table th{line-height:1.5}.shop_table .product-name-inner,.shop_table .product-name-inner tr td{border:none;padding:0;margin:0}.cart_totals p.wc-gzd-additional-info{font-size:.8em;width:60%;border-top:1px solid #CCC;padding-top:.5rem;display:inline-block}.entry-content .woocommerce #payment{margin-bottom:1em}.entry-content .woocommerce .place-order .form-row,.entry-content .woocommerce .place-order .form-row input[type=checkbox]{padding:0}.woocommerce-checkout p.terms{text-align:left}.woocommerce-checkout p.terms input[type=checkbox],.woocommerce-checkout p.terms label.checkbox{display:inline;width:auto}.unit-price-cart{font-size:.9em;display:block;margin-top:5px}.products .wc-gzd-additional-info{font-size:.8em;margin:.7rem 0;padding:0}.products .product .price-unit{font-size:.8em}.wc-gzd-item-desc p,p.footer-info{font-size:.9em}.product p.wc-gzd-additional-info{margin-bottom:.5rem;font-size:.9em}.product .product_meta{margin-top:1rem}p.footer-info{text-align:center;padding-bottom:.5rem}.trusted-shops-badge{width:100px;height:100px;display:inline-block;background:url(../images/trusted-shops-badge.png)no-repeat}.wc-gzd-edit-data-notice{background:#EEE;display:inline-block;padding:1em}.wc-gzd-edit-data-notice p.wc-gzd-info{margin:0;padding:0}table.product-details-inner{table-layout:fixed;margin:0;padding:0}table.product-details-inner,table.product-details-inner td,table.product-details-inner tr{padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border:none;background:0 0}table.product-details-inner tr td:last-child{text-align:right}.wc-gzd-trusted-shops-rating-widget{line-height:1.5rem}.wc-gzd-trusted-shops-rating-widget .star-rating{display:inline-block;float:none;margin-left:.5rem}.wc-gzd-product-name-left,.wc-gzd-product-name-right{float:left}.wc-gzd-product-name-left{max-width:15%;margin-right:1em}#eKomiSeal_default img{width:100%!important;height:100%!important}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.trusted-shops-badge{background:url(../images/trusted-shops-badge@2x.png)no-repeat;background-size:100px 100px}.trusted-shops-badge-smaller{background-size:75px 75px}}
assets/images/pro/settings-agbs.png ADDED
Binary file
assets/images/pro/settings-inline-contract.png ADDED
Binary file
assets/images/pro/settings-inline-invoices.png ADDED
Binary file
assets/images/pro/settings-inline-vat.png ADDED
Binary file
assets/images/pro/settings-invoices.png ADDED
Binary file
assets/images/pro/settings-widerruf.png ADDED
Binary file
assets/js/add-to-cart-variation.js CHANGED
@@ -14,6 +14,9 @@
14
  if ( $('.type-product').find('.org_unit_price').length > 0 ) {
15
  $( '.type-product .unit-price' ).html( $('.product').find('.org_unit_price').html() ).removeClass('variation_modified').show();
16
  }
 
 
 
17
  $('.org_product_info').remove();
18
  $('.variation_modified').remove();
19
  }
@@ -28,6 +31,8 @@
28
  $wrapper.append( '<div class="org_price org_product_info">' + $wrapper.find( '.price:not(.price-unit):first' ).html() + '</div>' );
29
  if ( $wrapper.find( '.delivery-time-info:first' ).length > 0 )
30
  $wrapper.append( '<div class="org_delivery_time org_product_info">' + $wrapper.find( '.delivery-time-info:first' ).html() + '</div>' );
 
 
31
  if ( $wrapper.find( '.price-unit:first' ).length > 0 )
32
  $wrapper.append( '<div class="org_unit_price org_product_info">' + $wrapper.find( '.price-unit:first' ).html() + '</div>' );
33
  $( '.org_product_info' ).hide();
@@ -38,8 +43,12 @@
38
  }
39
  $wrapper.find( '.delivery-time-info:first' ).hide();
40
  $wrapper.find( '.price-unit:first' ).hide();
 
 
41
  if ( variation.delivery_time != '' )
42
  $wrapper.find( 'p.delivery-time-info:first' ).html( variation.delivery_time ).addClass('variation_modified').show();
 
 
43
  if ( variation.unit_price != '' ) {
44
  $wrapper.find( '.price-unit:first' ).remove();
45
  $wrapper.find( 'div[itemprop="offers"]:first' ).after('<p class="price price-unit smaller variation_modified">' + variation.unit_price + '</p>').show();
@@ -68,6 +77,7 @@
68
  return false;
69
  $( '.variations_form' ).wc_gzd_variation_form();
70
  $( '.variations_form .variations select' ).change();
 
71
  });
72
 
73
  })( jQuery, window, document );
14
  if ( $('.type-product').find('.org_unit_price').length > 0 ) {
15
  $( '.type-product .unit-price' ).html( $('.product').find('.org_unit_price').html() ).removeClass('variation_modified').show();
16
  }
17
+ if ( $('.type-product').find('.org_tax_info').length > 0 ) {
18
+ $( '.type-product .tax-info' ).html( $('.product').find('.org_tax_info').html() ).removeClass('variation_modified').show();
19
+ }
20
  $('.org_product_info').remove();
21
  $('.variation_modified').remove();
22
  }
31
  $wrapper.append( '<div class="org_price org_product_info">' + $wrapper.find( '.price:not(.price-unit):first' ).html() + '</div>' );
32
  if ( $wrapper.find( '.delivery-time-info:first' ).length > 0 )
33
  $wrapper.append( '<div class="org_delivery_time org_product_info">' + $wrapper.find( '.delivery-time-info:first' ).html() + '</div>' );
34
+ if ( $wrapper.find( '.tax-info:first' ).length > 0 )
35
+ $wrapper.append( '<div class="org_tax_info org_product_info">' + $wrapper.find( '.tax-info:first' ).html() + '</div>' );
36
  if ( $wrapper.find( '.price-unit:first' ).length > 0 )
37
  $wrapper.append( '<div class="org_unit_price org_product_info">' + $wrapper.find( '.price-unit:first' ).html() + '</div>' );
38
  $( '.org_product_info' ).hide();
43
  }
44
  $wrapper.find( '.delivery-time-info:first' ).hide();
45
  $wrapper.find( '.price-unit:first' ).hide();
46
+ $wrapper.find( '.tax-info:first' ).hide();
47
+
48
  if ( variation.delivery_time != '' )
49
  $wrapper.find( 'p.delivery-time-info:first' ).html( variation.delivery_time ).addClass('variation_modified').show();
50
+ if ( variation.tax_info != '' )
51
+ $wrapper.find( '.tax-info:first' ).html( variation.tax_info ).addClass('variation_modified').show();
52
  if ( variation.unit_price != '' ) {
53
  $wrapper.find( '.price-unit:first' ).remove();
54
  $wrapper.find( 'div[itemprop="offers"]:first' ).after('<p class="price price-unit smaller variation_modified">' + variation.unit_price + '</p>').show();
77
  return false;
78
  $( '.variations_form' ).wc_gzd_variation_form();
79
  $( '.variations_form .variations select' ).change();
80
+ $( '.variations_form .variations input:radio:checked' ).change();
81
  });
82
 
83
  })( jQuery, window, document );
assets/js/add-to-cart-variation.min.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /*!
2
+ * Variations Plugin
3
+ */
4
+ !function(a){function b(){a(".type-product").find(".org_price").length>0&&a(".type-product .price.variation_modified:not(.price-unit)").html(a(".type-product").find(".org_price").html()).removeClass("variation_modified").show(),a(".type-product").find(".org_delivery_time").length>0&&a(".type-product .delivery-time-info").html(a(".type-product").find(".org_delivery_time").html()).removeClass("variation_modified").show(),a(".type-product").find(".org_unit_price").length>0&&a(".type-product .unit-price").html(a(".product").find(".org_unit_price").html()).removeClass("variation_modified").show(),a(".type-product").find(".org_tax_info").length>0&&a(".type-product .tax-info").html(a(".product").find(".org_tax_info").html()).removeClass("variation_modified").show(),a(".org_product_info").remove(),a(".variation_modified").remove()}a.fn.wc_gzd_variation_form=function(){$form=this,$wrapper=$form.parents(".type-product").on("found_variation",function(b,c){$wrapper.find(".price:first").hasClass("variation_modified")||($wrapper.append('<div class="org_price org_product_info">'+$wrapper.find(".price:not(.price-unit):first").html()+"</div>"),$wrapper.find(".delivery-time-info:first").length>0&&$wrapper.append('<div class="org_delivery_time org_product_info">'+$wrapper.find(".delivery-time-info:first").html()+"</div>"),$wrapper.find(".tax-info:first").length>0&&$wrapper.append('<div class="org_tax_info org_product_info">'+$wrapper.find(".tax-info:first").html()+"</div>"),$wrapper.find(".price-unit:first").length>0&&$wrapper.append('<div class="org_unit_price org_product_info">'+$wrapper.find(".price-unit:first").html()+"</div>"),a(".org_product_info").hide()),""!=c.price_html&&(a(".single_variation .price").hide(),$wrapper.find(".price:not(.price-unit):first").html(c.price_html).addClass("variation_modified")),$wrapper.find(".delivery-time-info:first").hide(),$wrapper.find(".price-unit:first").hide(),$wrapper.find(".tax-info:first").hide(),""!=c.delivery_time&&$wrapper.find("p.delivery-time-info:first").html(c.delivery_time).addClass("variation_modified").show(),""!=c.tax_info&&$wrapper.find(".tax-info:first").html(c.tax_info).addClass("variation_modified").show(),""!=c.unit_price&&($wrapper.find(".price-unit:first").remove(),$wrapper.find('div[itemprop="offers"]:first').after('<p class="price price-unit smaller variation_modified">'+c.unit_price+"</p>").show())}).on("update_variation_values",function(){setTimeout(function(){a(".single_variation_wrap").is(":visible")||b()},250)}).on("click",".reset_variations",function(){b()})},a(function(){return"undefined"==typeof wc_add_to_cart_variation_params?!1:(a(".variations_form").wc_gzd_variation_form(),a(".variations_form .variations select").change(),void a(".variations_form .variations input:radio:checked").change())})}(jQuery,window,document);
assets/js/admin/settings.js CHANGED
@@ -1,3 +1,10 @@
 
 
 
 
 
 
 
1
  jQuery( window ).load( function () {
2
  window.scrollTo( 0, 0 );
3
  });
1
+ jQuery( function ( $ ) {
2
+ $( document ).on( 'click', '#wc-gzd-trusted-shops-export', function() {
3
+ var href_org = $( this ).data( "href-org" );
4
+ $( this ).attr( "href", href_org + '&interval=' + $( '#woocommerce_gzd_trusted_shops_review_collector' ).val() );
5
+ });
6
+ });
7
+
8
  jQuery( window ).load( function () {
9
  window.scrollTo( 0, 0 );
10
  });
assets/js/admin/settings.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(a){a(document).on("click","#wc-gzd-trusted-shops-export",function(){var b=a(this).data("href-org");a(this).attr("href",b+"&interval="+a("#woocommerce_gzd_trusted_shops_review_collector").val())})}),jQuery(window).load(function(){window.scrollTo(0,0)});
assets/js/checkout.js CHANGED
@@ -6,4 +6,8 @@ jQuery( function( $ ) {
6
  if ( $( '.wc-gzd-place-order' ).length > 0 )
7
  $( '.place-order:not(.wc-gzd-place-order)' ).remove();
8
  });
 
 
 
 
9
  });
6
  if ( $( '.wc-gzd-place-order' ).length > 0 )
7
  $( '.place-order:not(.wc-gzd-place-order)' ).remove();
8
  });
9
+ if ( $( '.woocommerce-checkout' ).find( '#order_review_heading' ).length > 0 ) {
10
+ $( '.woocommerce-checkout' ).find( '#payment' ).after( $( '.woocommerce-checkout' ).find( '#order_review_heading' ) );
11
+ $( '.woocommerce-checkout' ).find( '#order_review_heading' ).show();
12
+ }
13
  });
assets/js/checkout.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(a){a(document).on("change",'.payment_methods input[name="payment_method"]',function(){a("body").trigger("update_checkout")}),a("body").bind("updated_checkout",function(){a(".wc-gzd-place-order").length>0&&a(".place-order:not(.wc-gzd-place-order)").remove()}),a(".woocommerce-checkout").find("#order_review_heading").length>0&&(a(".woocommerce-checkout").find("#payment").after(a(".woocommerce-checkout").find("#order_review_heading")),a(".woocommerce-checkout").find("#order_review_heading").show())});
assets/js/revocation.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(a){a("form#woocommerce-gzd-revocation").on("blur input change",".input-text, select",function(){var b=a(this),c=b.closest(".form-row"),d=!0;if(c.is(".validate-required")&&""===b.val()&&(c.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-required-field"),d=!1),c.is(".validate-email")&&b.val()){var e=new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);e.test(b.val())||(c.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-email"),d=!1)}d&&c.removeClass("woocommerce-invalid woocommerce-invalid-required-field").addClass("woocommerce-validated")}),a("form#woocommerce-gzd-revocation").submit(function(){var b=a(this);if(b.is(".processing"))return!1;b.addClass("processing").block({message:null,overlayCSS:{background:"#fff url("+wc_gzd_revocation_params.ajax_loader_url+") no-repeat center",backgroundSize:"16px 16px",opacity:.6}});var c=b.serialize()+"&action=woocommerce_gzd_revocation";return a.ajax({type:"POST",url:wc_gzd_revocation_params.ajax_url,data:c,success:function(c){a(".woocommerce-error, .woocommerce-message").remove(),b.removeClass("processing").unblock();var d="";try{if(c.indexOf("<!--WC_START-->")>=0&&(c=c.split("<!--WC_START-->")[1]),c.indexOf("<!--WC_END-->")>=0&&(c=c.split("<!--WC_END-->")[0]),d=a.parseJSON(c),"success"!==d.result)throw"failure"===d.result?"Result failure":"Invalid response";b.before(d.messages),b.fadeOut("fast"),a("html, body").animate({scrollTop:a(".woocommerce-message").offset().top-100},1e3)}catch(e){b.prepend(d.messages?d.messages:c),a("html, body").animate({scrollTop:a("form#woocommerce-gzd-revocation").offset().top-100},1e3)}},dataType:"html"}),!1})});
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.2.1\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2014-09-29 12:26+0100\n"
6
- "PO-Revision-Date: 2015-02-17 13:28:26+0000\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
@@ -85,7 +85,7 @@ msgstr "Über WooCommerce Germanized"
85
  msgid "Welcome to WooCommerce Germanized"
86
  msgstr "Willkommen bei WooCommerce Germanized"
87
 
88
- #: includes/admin/class-wc-gzd-admin-welcome.php:231
89
  #@ woocommerce-germanized
90
  msgid "Go to WooCommerce Germanized Settings"
91
  msgstr "zu den WooCommerce Germanized Einstellungen"
@@ -100,103 +100,104 @@ msgstr "zu den WooCommerce Germanized Einstellungen"
100
  msgid "Cheatin&#8217; huh?"
101
  msgstr "So geht das leider nicht.."
102
 
103
- #: includes/admin/class-wc-gzd-admin.php:54
104
  #@ woocommerce-germanized
105
  msgid "Optional Email Content"
106
  msgstr "Optionaler E-Mail Inhalt"
107
 
108
- #: includes/admin/class-wc-gzd-admin.php:63
109
  #@ woocommerce-germanized
110
  msgid "Add content which will be replacing default page content within emails."
111
  msgstr "Füllen Sie dieses Feld aus um einen abweichenden E-Mail Anhangstext für diese Seite zu bestimmen."
112
 
113
- #: includes/admin/class-wc-gzd-admin.php:72
114
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:86
115
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:145
116
  #@ woocommerce-germanized
117
  msgid "Optional Mini Description"
118
  msgstr "Warenkorb Kurzbeschreibung"
119
 
120
- #: includes/admin/class-wc-gzd-admin.php:77
121
  #@ woocommerce-germanized
122
  msgid "This content will be shown as short product description within checkout and emails."
123
  msgstr "Dieser Inhalt wird während des Bezahlvorganges und in den E-Mails als Produkt Kurzbeschreibung angezeigt."
124
 
125
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:46
126
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:103
127
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:25
 
128
  #@ woocommerce-germanized
129
  msgid "Unit"
130
  msgstr "Einheit"
131
 
132
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:48
133
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:74
134
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:105
135
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:133
136
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:53
137
- #: includes/class-wc-gzd-trusted-shops.php:350
138
  #@ woocommerce-germanized
139
  msgid "None"
140
  msgstr "Keine"
141
 
142
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:55
143
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:112
144
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:26
145
  #@ woocommerce-germanized
146
  msgid "Unit Base"
147
  msgstr "Anzahl Einheiten"
148
 
149
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:59
150
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:118
151
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:27
152
  #@ woocommerce-germanized
153
  msgid "Regular Unit Price"
154
  msgstr "Einheitspreis"
155
 
156
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:63
157
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:122
158
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:28
159
  #@ woocommerce-germanized
160
  msgid "Sale Unit Price"
161
  msgstr "Aktions-Einheitspreis"
162
 
163
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:69
164
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:128
 
165
  #@ woocommerce-germanized
166
  msgid "Delivery Time"
167
  msgstr "Lieferzeit"
168
 
169
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:25
170
  #@ woocommerce-germanized
171
  msgid "Select unit"
172
  msgstr "Einheit auswählen"
173
 
174
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:25
175
  #@ woocommerce-germanized
176
  msgid "Needed if selling on a per unit basis"
177
  msgstr "Notwendig falls auf pro-Einheit-Basis verkauft werden soll"
178
 
179
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:26
180
  #@ woocommerce-germanized
181
  msgid "Unit price per amount (e.g. 100)"
182
  msgstr "Anzahl der Einheiten, auf die sich der Einheitspreis bezieht"
183
 
184
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:23
185
  #@ woocommerce-germanized
186
  msgid "Germanized"
187
  msgstr "Germanized"
188
 
189
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:40
190
  #@ woocommerce-germanized
191
  msgid "General Options"
192
  msgstr "Allgemein"
193
 
194
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:41
195
  #@ woocommerce-germanized
196
  msgid "Display Options"
197
  msgstr "Anzeige"
198
 
199
- #: includes/class-wc-gzd-trusted-shops.php:497
200
  #@ woocommerce-germanized
201
  msgctxt "trusted-shops"
202
  msgid "Trusted Shops Options"
@@ -208,367 +209,367 @@ msgctxt "ekomi"
208
  msgid "eKomi Options"
209
  msgstr "eKomi"
210
 
211
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:66
212
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:367
213
  #@ woocommerce-germanized
214
  msgid "General"
215
  msgstr "Allgemein"
216
 
217
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:69
218
  #@ woocommerce-germanized
219
  msgid "Small-Enterprise-Regulation"
220
  msgstr "Kleinunternehmerregelung"
221
 
222
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:70
223
  #@ woocommerce-germanized
224
  msgid "VAT based on &#167;19 UStG"
225
- msgstr "Umsatzsteuerbefreit nach &#167;19 UStG"
226
 
227
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:74
228
  #, php-format
229
  #@ woocommerce-germanized
230
  msgid "set this Option if you have chosen <a href=\"%s\" target=\"_blank\">&#167;19 UStG</a>"
231
  msgstr "wähle diese Option, falls du von der Kleinunternehmerregelung (<a href=\"%s\" target=\"_blank\">&#167;19 UStG</a>) betroffen bist und davon Gebrauch machen willst."
232
 
233
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:78
234
  #@ woocommerce-germanized
235
  msgid "Show no VAT notice"
236
  msgstr "Umsatzsteuerbefreiung"
237
 
238
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:79
239
  #@ woocommerce-germanized
240
  msgid "Show no VAT &#167;19 UStG notice on single product"
241
- msgstr "Hinweis zur Umsatzsteuerbefreiung gemäß &#167;19 UStG auf der Produktseite anzeigen"
242
 
243
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:86
244
  #@ woocommerce-germanized
245
  msgid "Submit Order Button Text"
246
  msgstr "Kauf abschließen - Text"
247
 
248
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:87
249
  #@ woocommerce-germanized
250
  msgid "This text serves as Button text for the Order Submit Button."
251
  msgstr "Dieser Text wird auf dem Kauf abschließen Button dargestellt"
252
 
253
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:92
254
  #@ woocommerce-germanized
255
  msgid "Buy Now"
256
  msgstr "Jetzt kaufen"
257
 
258
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:96
259
  #@ woocommerce-germanized
260
  msgid "Phone as required field"
261
  msgstr "Telefon als Pflichtfeld"
262
 
263
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:97
264
  #@ woocommerce-germanized
265
  msgid "Should phone number be a required field within checkout?"
266
  msgstr "Diese Option setzen, damit die Telefonnummer ein Pflichtfeld im Checkout ist."
267
 
268
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:113
269
  #@ woocommerce-germanized
270
  msgid "Legal Pages"
271
  msgstr "Rechtlich relevante Seiten"
272
 
273
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:116
274
  #@ woocommerce-germanized
275
  msgid "Imprint"
276
  msgstr "Impressum"
277
 
278
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:117
279
  #@ woocommerce-germanized
280
  msgid "This page should contain an imprint with your company's information."
281
  msgstr "Diese Seite sollte das Impressum d.h. die Informationen (gemäß TMG) zu Ihrem Unternehmen enthalten."
282
 
283
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:198
284
  #@ woocommerce-germanized
285
  msgid "Shipping Costs"
286
  msgstr "Versandkosten"
287
 
288
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:127
289
  #@ woocommerce-germanized
290
  msgid "Data Security Statement"
291
  msgstr "Datenschutzbelehrung"
292
 
293
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:128
294
  #@ woocommerce-germanized
295
  msgid "This page should contain information regarding your data security policy."
296
  msgstr "Diese Seite sollte Ihre Datenschutzbelehrung enthalten."
297
 
298
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:138
299
  #@ woocommerce-germanized
300
  msgid "Power of Revocation"
301
  msgstr "Widerrufsbelehrung"
302
 
303
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:139
304
  #@ woocommerce-germanized
305
  msgid "This page should contain information regarding your customer's Right of Revocation."
306
  msgstr "Diese Seite sollte Ihre Widerrufsbelehrung enthalten. Nutzen Sie folgenden Shortcut um ein Widerrufsformular in die Seite einzubinden: [revocation_form]"
307
 
308
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:149
309
  #@ woocommerce-germanized
310
  msgid "Payment Methods"
311
- msgstr "Zahlungsmethoden"
312
 
313
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:150
314
  #@ woocommerce-germanized
315
  msgid "This page should contain information regarding the Payment Methods that are chooseable during checkout."
316
  msgstr "Diese Seite sollte Informationen zu den von Ihnen zur Verfügung gestellten Zahlungsmöglichkeiten bereitstellen. Nutzen Sie dafür z.B. folgenden Shortcut: [payment_methods_info]"
317
 
318
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:160
319
  #@ woocommerce-germanized
320
  msgid "Shipping Methods"
321
- msgstr "Versandmethoden"
322
 
323
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:161
324
  #@ woocommerce-germanized
325
  msgid "This page should contain information regarding shipping methods that are chooseable during checkout."
326
- msgstr "Diese Seite sollte Informationen zu den von Ihnen zur Verfügung gestellten Versandmethoden bereitstellen."
327
 
328
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:172
329
  #@ woocommerce-germanized
330
  msgid "Delivery Times"
331
  msgstr "Lieferzeiten"
332
 
333
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:175
334
  #@ woocommerce-germanized
335
  msgid "Default Delivery Time"
336
  msgstr "Standard-Lieferzeit"
337
 
338
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:176
339
  #@ woocommerce-germanized
340
  msgid "This delivery time will be added to every product if no delivery time has been chosen individually"
341
  msgstr "Diese Lieferzeit wird bei Produkten angezeigt, denen keine Lieferzeit zugeordnet wurde"
342
 
343
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:187
344
  #@ woocommerce-germanized
345
  msgid "Delivery Time Text"
346
  msgstr "Lieferzeit Text"
347
 
348
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:188
349
  #@ woocommerce-germanized
350
  msgid "This text will be used to indicate delivery time for products. Use {delivery_time} as placeholder."
351
  msgstr "Dieser Text wird verwendet um die Lieferzeit im Frontend darzustellen. {delivery_time} als Platzhalter verwenden."
352
 
353
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:193
354
  #@ woocommerce-germanized
355
  msgid "Delivery time: {delivery_time}"
356
  msgstr "Lieferzeit: {delivery_time}"
357
 
358
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:201
359
  #@ woocommerce-germanized
360
  msgid "Shipping Costs Text"
361
  msgstr "Versandkosten Text"
362
 
363
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:202
364
  #@ woocommerce-germanized
365
  msgid "This text will be used to inform the customer about shipping costs. Use {link}{/link} to insert link to shipping costs page."
366
  msgstr "Dieser Text wird genutzt um die Kunden im Frontend über u.U. anfallende Lieferkosten zu informieren. Nutzen Sie die Platzhalter {link}{/link} um den Link zur Versandkosten-Seite einzufügen."
367
 
368
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:207
369
  #@ woocommerce-germanized
370
  msgid "plus {link}Shipping Costs{/link}"
371
  msgstr "zzgl. {link}Versandkosten{/link}"
372
 
373
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:289
374
  #@ woocommerce-germanized
375
  msgid "Right of Recission"
376
  msgstr "Widerrufsrecht"
377
 
378
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:292
379
  #@ woocommerce-germanized
380
  msgid "Revocation Address"
381
  msgstr "Widerruf richten an"
382
 
383
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:293
384
  #@ woocommerce-germanized
385
  msgid "Type in an address, telephone/telefax number, email address which is to be used as revocation address"
386
  msgstr "Geben Sie hier Ihre Adresse, Telefon- und Faxnummer, E-Mail Adresse usw. an, an die Ihre Kunden Ihren Widerruf richten sollen"
387
 
388
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:302
389
  #@ woocommerce-germanized
390
  msgid "E-Mails"
391
  msgstr "E-Mails"
392
 
393
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:305
394
  #@ woocommerce-germanized
395
  msgid "Attach Imprint"
396
  msgstr "Impressum"
397
 
398
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:306
399
  #@ woocommerce-germanized
400
  msgid "Attach Imprint to the following email templates"
401
  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)"
402
 
403
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:315
404
  #@ woocommerce-germanized
405
  msgid "Attach Terms & Conditions"
406
  msgstr "AGB"
407
 
408
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:316
409
  #@ woocommerce-germanized
410
  msgid "Attach Terms & Conditions to the following email templates"
411
  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)"
412
 
413
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:325
414
  #@ woocommerce-germanized
415
  msgid "Attach Power of Recission"
416
  msgstr "Widerrufsbelehrung"
417
 
418
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:326
419
  #@ woocommerce-germanized
420
  msgid "Attach Power of Recission to the following email templates"
421
  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."
422
 
423
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:336
424
  #@ woocommerce-germanized
425
  msgid "Attach Data Security"
426
  msgstr "Datenschutzbelehrung"
427
 
428
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:337
429
  #@ woocommerce-germanized
430
  msgid "Attach Data Security Statement to the following email templates"
431
  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)"
432
 
433
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:370
434
  #@ woocommerce-germanized
435
  msgid "Add to Cart"
436
  msgstr "Zum Warenkorb Button"
437
 
438
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:371
439
  #@ woocommerce-germanized
440
  msgid "Show add to cart button on listings?"
441
  msgstr "Den zum Warenkorb Button in Produktlisten darstellen?"
442
 
443
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:375
444
  #@ woocommerce-germanized
445
  msgid "unset this option if you don't want to show the add to cart button within the product listings"
446
  msgstr "Deaktivieren Sie diese Option, wenn Sie den zum Warenkorb Button nicht innerhalb von Produktauflistungen darstellen möchten"
447
 
448
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:397
449
  #@ woocommerce-germanized
450
  msgid "Notice Footer"
451
  msgstr "Hinweise im Footer"
452
 
453
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:398
454
  #@ woocommerce-germanized
455
  msgid "Show a global VAT notice within footer"
456
- msgstr "Einen seitenübergreifenden Hinweis bzgl. der MwSt. im Footer darstellen"
457
 
458
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:406
459
  #@ woocommerce-germanized
460
  msgid "Show a global sale price notice within footer"
461
- msgstr "Einen seitenübergreifenden Hinweis bzgl. reduzierter Preise im Footer darstellen"
462
 
463
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:415
464
  #@ woocommerce-germanized
465
  msgid "Products"
466
  msgstr "Produkt"
467
 
468
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:418
469
  #@ woocommerce-germanized
470
  msgid "Show within Product Listings"
471
  msgstr "In Produktlisten"
472
 
473
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:419
474
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:452
475
  #@ woocommerce-germanized
476
  msgid "Shipping Costs notice"
477
  msgstr "Versandkosten-Hinweis"
478
 
479
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:275
480
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:435
481
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:468
482
  #@ woocommerce-germanized
483
  msgid "Unit Price"
484
  msgstr "Einheitspreis"
485
 
486
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:443
487
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:476
488
  #@ woocommerce-germanized
489
  msgid "Delivery Time Notice"
490
  msgstr "Lieferzeiten-Hinweis"
491
 
492
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:451
493
  #@ woocommerce-germanized
494
  msgid "Show on Product Detail Page"
495
  msgstr "Auf der Produktseite"
496
 
497
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:427
498
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:460
499
  #@ woocommerce-germanized
500
  msgid "Tax Info"
501
  msgstr "MwSt. Hinweis"
502
 
503
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:493
504
  #@ woocommerce-germanized
505
  msgid "Checkout & Cart"
506
  msgstr "Checkout & Warenkorb"
507
 
508
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:540
509
  #@ woocommerce-germanized
510
  msgid "Checkout Legal Display"
511
  msgstr "Checkbox oder Text"
512
 
513
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:541
514
  #@ woocommerce-germanized
515
  msgid "Use Text without Checkbox"
516
- msgstr "Rechtshinweis ohne Checkbox"
517
 
518
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:543
519
  #@ woocommerce-germanized
520
  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)."
521
  msgstr "Diese Option nutzt anstatt einer Checkbox einen ausformulierten Text direkt überhalb des Kauf abschließen Buttons (Zalando und Andere Shops verwenden diese Form)"
522
 
523
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:549
524
  #@ woocommerce-germanized
525
  msgid "Legal Text"
526
  msgstr "Rechtlicher Hinweistext"
527
 
528
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:550
529
  #@ woocommerce-germanized
530
  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."
531
  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."
532
 
533
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:552
534
  #@ woocommerce-germanized
535
  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}."
536
  msgstr "Mit Ihrer Bestellung erklären Sie sich mit unseren {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link} einverstanden."
537
 
538
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:559
539
  #@ woocommerce-germanized
540
  msgid "Legal Text Error"
541
  msgstr "Fehlermeldung der Checkbox"
542
 
543
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:560
544
  #@ woocommerce-germanized
545
  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."
546
  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}"
547
 
548
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:562
549
  #@ woocommerce-germanized
550
  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}."
551
  msgstr "Bitte akzeptieren Sie unsere {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
552
 
553
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:588
554
  #@ woocommerce-germanized
555
  msgid "Order Success Text"
556
  msgstr "Bestellung eingegangen"
557
 
558
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:589
559
  #@ woocommerce-germanized
560
  msgid "Choose a custom text to display on order success page."
561
  msgstr "Hier können Sie einen individuellen kurzen Text eingeben, der nach der Bestellung ausgegeben wird."
562
 
563
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:597
564
  #@ woocommerce-germanized
565
  msgid "Order Success Data"
566
  msgstr "Bestellbestätigungs-Daten"
567
 
568
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:598
569
  #@ woocommerce-germanized
570
  msgid "Hide product table and customer data on order success page"
571
- msgstr "Zusätzliche Produktdetails (Tabelle, Kundeninformationen) von der Bestellbestätigungs-Seite entfernen"
572
 
573
  #: includes/admin/views/html-notice-install.php:13
574
  #@ woocommerce-germanized
@@ -610,25 +611,25 @@ msgstr "WooCommerce Germanized installieren"
610
  msgid "Skip setup"
611
  msgstr "Setup überspringen"
612
 
613
- #: includes/class-wc-gzd-ajax.php:47
614
  #@ woocommerce-germanized
615
  msgctxt "revocation-form"
616
  msgid "is not a valid email address."
617
  msgstr "ist leider keine valide E-Mail Adresse."
618
 
619
- #: includes/class-wc-gzd-ajax.php:50
620
  #@ woocommerce-germanized
621
  msgctxt "revocation-form"
622
  msgid "Please enter a valid postcode/ZIP"
623
  msgstr "Bitte geben Sie eine echte Postleitzahl ein"
624
 
625
- #: includes/class-wc-gzd-ajax.php:53
626
  #@ woocommerce-germanized
627
  msgctxt "revocation-form"
628
  msgid "is not valid."
629
  msgstr "ist leider nicht korrekt."
630
 
631
- #: includes/class-wc-gzd-ajax.php:68
632
  #@ woocommerce-germanized
633
  msgctxt "revocation-form"
634
  msgid "Thank you. We have received your Revocation Request. You will receive a conformation email within a few minutes."
@@ -738,133 +739,133 @@ msgctxt "ekomi"
738
  msgid "Number of days between an order being marked as completed and review email to customer."
739
  msgstr "Anzahl der Tage zwischen dem Datum an dem die Bestellung als \"abgeschlossen\" (completed) markiert wurde und dem Absenden der Bewertungseinladung an den Kunden"
740
 
741
- #: includes/class-wc-gzd-emails.php:159
742
  #@ woocommerce-germanized
743
  msgctxt "revocation-form"
744
  msgid "Forward your Revocation online"
745
  msgstr "Ihren Widerruf online erklären"
746
 
747
- #: includes/class-wc-gzd-install.php:103
748
  #, php-format
749
  #@ woocommerce-germanized
750
  msgid "Please install <a href=\"%s\" target=\"_blank\">WooCommerce</a> before installing WooCommerce Germanized. Thank you!"
751
  msgstr "Bitte installieren Sie <a href=\"%s\" target=\"_blank\">WooCommerce</a> bevor Sie WooCommerce Germanized installieren. Vielen Dank!"
752
 
753
- #: includes/class-wc-gzd-install.php:316
754
  #@ woocommerce-germanized
755
  msgctxt "Page slug"
756
  msgid "data-security"
757
  msgstr "datenschutzbelehrung"
758
 
759
- #: includes/class-wc-gzd-install.php:317
760
  #@ woocommerce-germanized
761
  msgctxt "Page title"
762
  msgid "Data Security Statement"
763
  msgstr "Datenschutzbelehrung"
764
 
765
- #: includes/class-wc-gzd-install.php:321
766
  #@ woocommerce-germanized
767
  msgctxt "Page slug"
768
  msgid "imprint"
769
  msgstr "impressum"
770
 
771
- #: includes/class-wc-gzd-install.php:322
772
  #@ woocommerce-germanized
773
  msgctxt "Page title"
774
  msgid "Imprint"
775
  msgstr "Impressum"
776
 
777
- #: includes/class-wc-gzd-install.php:326
778
  #@ woocommerce-germanized
779
  msgctxt "Page slug"
780
  msgid "terms"
781
  msgstr "agb"
782
 
783
- #: includes/class-wc-gzd-install.php:327
784
  #@ woocommerce-germanized
785
  msgctxt "Page title"
786
  msgid "Terms & Conditions"
787
  msgstr "AGB"
788
 
789
- #: includes/class-wc-gzd-install.php:331
790
  #@ woocommerce-germanized
791
  msgctxt "Page slug"
792
  msgid "revocation"
793
  msgstr "widerrufsbelehrung"
794
 
795
- #: includes/class-wc-gzd-install.php:332
796
  #@ woocommerce-germanized
797
  msgctxt "Page title"
798
  msgid "Power of Revocation"
799
  msgstr "Widerrufsbelehrung"
800
 
801
- #: includes/class-wc-gzd-install.php:341
802
  #@ woocommerce-germanized
803
  msgctxt "Page slug"
804
  msgid "payment-methods"
805
  msgstr "bezahlmoeglichkeiten"
806
 
807
- #: includes/class-wc-gzd-install.php:342
808
  #@ woocommerce-germanized
809
  msgctxt "Page title"
810
  msgid "Payment Methods"
811
- msgstr "Zahlungsmethoden"
812
 
813
- #: includes/class-wc-gzd-install.php:336
814
  #@ woocommerce-germanized
815
  msgctxt "Page slug"
816
  msgid "shipping-methods"
817
- msgstr "versandmethoden"
818
 
819
- #: includes/class-wc-gzd-install.php:337
820
  #@ woocommerce-germanized
821
  msgctxt "Page title"
822
  msgid "Shipping Methods"
823
- msgstr "Versandmethoden"
824
 
825
- #: includes/class-wc-gzd-post-types.php:32
826
- #: includes/class-wc-gzd-post-types.php:34
827
  #@ woocommerce-germanized
828
  msgid "Product Delivery Times"
829
  msgstr "Lieferzeiten"
830
 
831
- #: includes/class-wc-gzd-post-types.php:35
832
  #@ woocommerce-germanized
833
  msgid "Product Delivery Time"
834
  msgstr "Lieferzeit"
835
 
836
- #: includes/class-wc-gzd-post-types.php:36
837
  #@ woocommerce-germanized
838
  msgctxt "Admin menu name"
839
  msgid "Delivery Time"
840
- msgstr "Lieferzeit"
841
 
842
- #: includes/class-wc-gzd-post-types.php:37
843
  #@ woocommerce-germanized
844
  msgid "Search Delivery Times"
845
  msgstr "Lieferzeiten durchsuchen"
846
 
847
- #: includes/class-wc-gzd-post-types.php:38
848
  #@ woocommerce-germanized
849
  msgid "All Product Delivery Times"
850
  msgstr "Alle Lieferzeiten"
851
 
852
- #: includes/class-wc-gzd-post-types.php:39
853
  #@ woocommerce-germanized
854
  msgid "Edit Product Delivery Time"
855
  msgstr "Lieferzeit bearbeiten"
856
 
857
- #: includes/class-wc-gzd-post-types.php:40
858
  #@ woocommerce-germanized
859
  msgid "Update Product Delivery Time"
860
  msgstr "Lieferzeit aktualisieren"
861
 
862
- #: includes/class-wc-gzd-post-types.php:41
863
  #@ woocommerce-germanized
864
  msgid "Add New Product Delivery Time"
865
  msgstr "Neue Lieferzeit hinzufügen"
866
 
867
- #: includes/class-wc-gzd-post-types.php:42
868
  #@ woocommerce-germanized
869
  msgid "New Product Delivery Time Name"
870
  msgstr "Lieferzeit Dauer"
@@ -885,7 +886,7 @@ msgstr "Hinweis: Bitte Unzutreffendes streichen und um Ihren Text ergänzen."
885
  #@ woocommerce-germanized
886
  msgctxt "revocation-form"
887
  msgid "I/We hereby give notice that I/We withdraw from my/our contract of sale of the following goods/provision of the following service: "
888
- msgstr "Hiermit widerrufe(n) ich/wir den von mir/uns abgeschlossenen Vertrag über den Kauf der folgenden Waren / die Erringung der folgenden Dienstleistung: "
889
 
890
  #: includes/class-wc-gzd-revocation.php:29
891
  #@ woocommerce-germanized
@@ -899,67 +900,67 @@ msgctxt "revocation-form"
899
  msgid "Order Date"
900
  msgstr "Datum der Bestellung"
901
 
902
- #: includes/class-wc-gzd-revocation.php:36
903
  #@ woocommerce-germanized
904
  msgctxt "revocation-form"
905
  msgid "Customer Data"
906
  msgstr "Kundeninformationen"
907
 
908
- #: includes/class-wc-gzd-revocation.php:39
909
  #@ woocommerce-germanized
910
  msgctxt "revocation-form"
911
  msgid "Title"
912
  msgstr "Anrede"
913
 
914
- #: includes/class-wc-gzd-revocation.php:42
915
  #@ woocommerce-germanized
916
  msgctxt "revocation-form"
917
  msgid "Sir"
918
  msgstr "Herr"
919
 
920
- #: includes/class-wc-gzd-revocation.php:43
921
  #@ woocommerce-germanized
922
  msgctxt "revocation-form"
923
  msgid "Madam"
924
  msgstr "Frau"
925
 
926
- #: includes/class-wc-gzd-revocation.php:48
927
  #@ woocommerce-germanized
928
  msgctxt "revocation-form"
929
  msgid "First Name"
930
  msgstr "Vorname"
931
 
932
- #: includes/class-wc-gzd-revocation.php:53
933
  #@ woocommerce-germanized
934
  msgctxt "revocation-form"
935
  msgid "Last Name"
936
  msgstr "Nachname"
937
 
938
- #: includes/class-wc-gzd-revocation.php:58
939
  #@ woocommerce-germanized
940
  msgctxt "revocation-form"
941
  msgid "Street"
942
  msgstr "Straße"
943
 
944
- #: includes/class-wc-gzd-revocation.php:63
945
  #@ woocommerce-germanized
946
  msgctxt "revocation-form"
947
  msgid "Postal Code"
948
- msgstr "Postleitahl"
949
 
950
- #: includes/class-wc-gzd-revocation.php:68
951
  #@ woocommerce-germanized
952
  msgctxt "revocation-form"
953
  msgid "City"
954
  msgstr "Stadt"
955
 
956
- #: includes/class-wc-gzd-revocation.php:73
957
  #@ woocommerce-germanized
958
  msgctxt "revocation-form"
959
  msgid "Country"
960
  msgstr "Land"
961
 
962
- #: includes/class-wc-gzd-revocation.php:80
963
  #@ woocommerce-germanized
964
  msgctxt "revocation-form"
965
  msgid "Mail"
@@ -1007,32 +1008,32 @@ msgctxt "trusted-shops"
1007
  msgid "Financing"
1008
  msgstr "Finanzierung"
1009
 
1010
- #: includes/class-wc-gzd-trusted-shops.php:224
1011
  #, php-format
1012
  #@ woocommerce-germanized
1013
  msgctxt "trusted-shops"
1014
  msgid "Rated %s out of %s"
1015
  msgstr "Bewertet mit %s von %s"
1016
 
1017
- #: includes/class-wc-gzd-trusted-shops.php:226
1018
  #, php-format
1019
  #@ woocommerce-germanized
1020
  msgctxt "trusted-shops"
1021
  msgid "out of %s"
1022
  msgstr "von %s"
1023
 
1024
- #: includes/class-wc-gzd-trusted-shops.php:354
1025
  #@ woocommerce-germanized
1026
  msgctxt "trusted-shops"
1027
  msgid "Trusted Shops Integration"
1028
  msgstr "Trusted Shops Integration"
1029
 
1030
- #: includes/class-wc-gzd-trusted-shops.php:451
1031
  #, php-format
1032
  #@ woocommerce-germanized
1033
  msgctxt "trusted-shops"
1034
  msgid "Choose a Trusted Shops Payment Gateway linked to WooCommerce Payment Gateway %s"
1035
- msgstr "Wählen Sie für die Zahlungsmöglichkeit %s eine von Trusted Shops vorgegebene Zahlungsmöglichkeit aus."
1036
 
1037
  #: includes/emails/class-wc-gzd-email-customer-ekomi.php:25
1038
  #@ woocommerce-germanized
@@ -1068,63 +1069,64 @@ msgstr "Diese E-Mail wird als Bestätigung an den Kunden weitergeleitet, sobald
1068
  msgid "Your Revocation"
1069
  msgstr "Ihr Widerruf"
1070
 
1071
- #: includes/abstracts/abstract-wc-gzd-payment-gateway.php:84
1072
  #, php-format
1073
  #@ woocommerce-germanized
1074
  msgid "plus %s payment charge"
1075
  msgstr "zzgl. %s Zahlungsgebühr"
1076
 
1077
- #: includes/abstracts/abstract-wc-gzd-payment-gateway.php:19
1078
  #, php-format
1079
  #@ woocommerce-germanized
1080
  msgid "Plus %s payment charge."
1081
  msgstr "Zzgl. %s Zahlungsgebühr."
1082
 
1083
- #: includes/abstracts/abstract-wc-gzd-payment-gateway.php:44
1084
  #@ woocommerce-germanized
1085
  msgid "Fee"
1086
  msgstr "Zahlungsgebühr"
1087
 
1088
- #: includes/abstracts/abstract-wc-gzd-payment-gateway.php:46
1089
  #@ woocommerce-germanized
1090
  msgid "This fee is being added if customer selects payment method within checkout."
1091
  msgstr "Diese Gebühr wird während der Bestellung hinzugefügt, falls der Kunde diese Zahlungsart aktiviert."
1092
 
1093
- #: includes/abstracts/abstract-wc-gzd-payment-gateway.php:51
1094
  #@ woocommerce-germanized
1095
  msgid "Fee is taxable?"
1096
  msgstr "Mwst. berechnen?"
1097
 
1098
- #: includes/abstracts/abstract-wc-gzd-payment-gateway.php:72
1099
  #@ woocommerce-germanized
1100
  msgid "Payment charge"
1101
  msgstr "Zahlungsgebühr"
1102
 
1103
- #: includes/abstracts/abstract-wc-gzd-product.php:82
1104
- #: includes/wc-gzd-cart-functions.php:102
1105
- #: woocommerce-germanized.php:827
1106
  #, php-format
1107
  #@ woocommerce-germanized
1108
  msgid "incl. %s%% VAT"
1109
  msgstr "inkl. %s%% MwSt."
1110
 
1111
- #: includes/wc-gzd-template-functions.php:151
 
1112
  #@ woocommerce-germanized
1113
  msgid "Edit Order"
1114
  msgstr "Bestellung bearbeiten"
1115
 
1116
- #: includes/wc-gzd-template-functions.php:162
1117
  #@ woocommerce-germanized
1118
  msgid "Choose a Payment Gateway"
1119
- msgstr "Zahlungsmethode auswählen"
1120
 
1121
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:581
1122
- #: includes/wc-gzd-cart-functions.php:137
1123
  #@ woocommerce-germanized
1124
  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."
1125
  msgstr "Ja, ich möchte sofort Zugang zu dem digitalen Inhalt und weiß, dass mein Widerrufsrecht mit dem Zugang erlischt."
1126
 
1127
- #: includes/wc-gzd-template-functions.php:220
1128
  #@ woocommerce-germanized
1129
  msgid "To get immediate access to digital content you have to agree to the losal of your right to cancel."
1130
  msgstr "Um direkten Zugang zu den digitalen Inhalte zu erhalten, müssen Sie auf das Widerrufsrecht verzichten."
@@ -1144,22 +1146,19 @@ msgctxt "trusted-shops"
1144
  msgid "Trusted Shops Reviews"
1145
  msgstr "Trusted Shops Bewertung"
1146
 
1147
- #: templates/checkout/review-order-2-2.php:116
1148
- #: templates/checkout/review-order.php:66
1149
  #@ woocommerce
1150
  msgid "Cart Subtotal"
1151
  msgstr "Zwischensumme"
1152
 
1153
- #: templates/checkout/review-order-2-2.php:170
1154
- #: templates/checkout/review-order.php:113
1155
  #@ woocommerce
1156
  msgid "Order Total"
1157
  msgstr "Gesamtsumme"
1158
 
1159
  #: templates/checkout/form-pay-2-2.php:57
1160
- #: templates/checkout/form-pay.php:58
1161
  #: templates/checkout/review-order-2-2.php:70
1162
- #: templates/checkout/review-order.php:20
1163
  #@ woocommerce
1164
  msgid "Product"
1165
  msgstr "Produkt"
@@ -1174,36 +1173,34 @@ msgstr "Bitte geben Sie Ihre Informationen ein, damit Sie die zu Verfügung steh
1174
  msgid "Sorry, it seems that there are no available payment methods for your state. Please contact us if you require assistance or wish to make alternate arrangements."
1175
  msgstr "Es tut uns Leid! Leider gibt es für Sie aktuell keine passende Zahlungsmethode. Bitte nehmen Sie mit uns Kontakt auf, damit wir Ihnen eine individuelle Lösung anbieten können."
1176
 
1177
- #: includes/wc-gzd-template-functions.php:329
1178
  #: templates/checkout/form-pay-2-2.php:52
1179
- #: templates/checkout/form-pay.php:53
1180
  #: templates/checkout/review-order-2-2.php:63
1181
  #@ woocommerce
1182
  msgid "Your order"
1183
  msgstr "Ihre Bestellung"
1184
 
1185
  #: templates/checkout/order-submit.php:17
1186
- #: templates/checkout/review-order-2-2.php:181
1187
  #@ woocommerce
1188
  msgid "Since your browser does not support JavaScript, or it is disabled, please ensure you click the <em>Update Totals</em> button before placing your order. You may be charged more than the amount stated above if you fail to do so."
1189
  msgstr "Da Ihr Browser kein JavaScript erlaubt, denken Sie bitte daran, auf \"Gesamtsumme aktualisieren\" zu klicken, bevor Sie den Auftrag absenden. "
1190
 
1191
  #: templates/checkout/order-submit.php:17
1192
- #: templates/checkout/review-order-2-2.php:181
1193
  #@ woocommerce
1194
  msgid "Update totals"
1195
  msgstr "Gesamtsumme aktualisieren"
1196
 
1197
  #: templates/checkout/order-submit.php:28
1198
- #: templates/checkout/review-order-2-2.php:197
1199
  #, php-format
1200
  #@ woocommerce
1201
  msgid "I&rsquo;ve read and accept the <a href=\"%s\" target=\"_blank\">terms &amp; conditions</a>"
1202
  msgstr "Ich habe die <a href=\"%s\" target=\"_blank\">Allgemeinen Geschäftsbedingungen</a> gelesen und akzeptiert."
1203
 
1204
- #: includes/wc-gzd-template-functions.php:317
1205
  #: templates/checkout/order-submit.php:24
1206
- #: templates/checkout/review-order-2-2.php:188
1207
  #@ woocommerce
1208
  msgid "Place order"
1209
  msgstr "Jetzt kaufen"
@@ -1234,18 +1231,18 @@ msgctxt "revocation-form"
1234
  msgid "By sending you this email we confirm your Revocation. Please review your data."
1235
  msgstr "Mit der Zustellung dieser E-Mail bestätigen wir Ihren Widerruf. Bitte prüfen Sie Ihre Daten."
1236
 
1237
- #: templates/emails/email-order-items.php:25
1238
  #@ woocommerce
1239
  msgid "Product Image"
1240
  msgstr "Produktbild"
1241
 
1242
- #: templates/emails/email-order-items.php:46
1243
  #, php-format
1244
  #@ woocommerce
1245
  msgid "Download %d"
1246
  msgstr "Download %d"
1247
 
1248
- #: templates/emails/email-order-items.php:48
1249
  #@ woocommerce
1250
  msgid "Download"
1251
  msgstr "Download"
@@ -1266,7 +1263,6 @@ msgid "All prices excl. VAT."
1266
  msgstr "Alle Preise exkl. der gesetzlichen MwSt."
1267
 
1268
  #: templates/footer/vat-info.php:15
1269
- #: templates/global/small-business-info.php:13
1270
  #@ woocommerce-germanized
1271
  msgid "Because of the small business owner state according to &#167;19 UStG the seller charge no sales tax, and therefore do not show it."
1272
  msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach §19 (1) UStG."
@@ -1289,28 +1285,17 @@ msgstr "Widerruf erklären"
1289
  msgid "VAT free based on &#167;19 UStG"
1290
  msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach §19 (1) UStG."
1291
 
1292
- #: woocommerce-germanized.php:564
1293
  #@ woocommerce
1294
  msgid "Settings"
1295
  msgstr "Einstellungen"
1296
 
1297
- #: woocommerce-germanized.php:800
1298
- #@ woocommerce
1299
- msgid "Order Total:"
1300
- msgstr "Gesamtsumme"
1301
-
1302
  #. translators: plugin header field 'Name'
1303
  #: woocommerce-germanized.php:0
1304
  #@ woocommerce-germanized
1305
  msgid "WooCommerce Germanized"
1306
  msgstr "WooCommerce Germanized"
1307
 
1308
- #. translators: plugin header field 'PluginURI'
1309
- #: woocommerce-germanized.php:0
1310
- #@ woocommerce-germanized
1311
- msgid "http://www.vendidero.de/woocommerce-germanized"
1312
- msgstr "http://www.vendidero.de/woocommerce-germanized"
1313
-
1314
  #. translators: plugin header field 'Description'
1315
  #: woocommerce-germanized.php:0
1316
  #@ woocommerce-germanized
@@ -1323,148 +1308,137 @@ msgstr "Erweitert WooCommerce zu einem rechtskonformen Shop für den deutschen M
1323
  msgid "Vendidero"
1324
  msgstr "Vendidero"
1325
 
1326
- #. translators: plugin header field 'AuthorURI'
1327
- #: woocommerce-germanized.php:0
1328
- #@ woocommerce-germanized
1329
- msgid "http://vendidero.de"
1330
- msgstr "http://vendidero.de"
1331
-
1332
  #: templates/checkout/form-pay-2-2.php:58
1333
- #: templates/checkout/form-pay.php:59
1334
  #@ woocommerce
1335
  msgid "Qty"
1336
  msgstr ""
1337
 
1338
  #: templates/checkout/form-pay-2-2.php:59
1339
- #: templates/checkout/form-pay.php:60
1340
  #@ woocommerce
1341
  msgid "Totals"
1342
  msgstr ""
1343
 
1344
  #: templates/checkout/form-pay-2-2.php:19
1345
- #: templates/checkout/form-pay.php:19
1346
  #@ woocommerce
1347
  msgid "Payment"
1348
  msgstr ""
1349
 
1350
  #: templates/checkout/form-pay-2-2.php:44
1351
- #: templates/checkout/form-pay.php:44
1352
  #@ woocommerce
1353
  msgid "Sorry, it seems that there are no available payment methods for your location. Please contact us if you require assistance or wish to make alternate arrangements."
1354
  msgstr ""
1355
 
1356
  #: templates/checkout/form-pay-2-2.php:93
1357
- #: templates/checkout/form-pay.php:94
1358
  #@ woocommerce
1359
  msgid "Pay for order"
1360
  msgstr ""
1361
 
1362
- #: includes/class-wc-gzd-trusted-shops.php:223
1363
  #, php-format
1364
  #@ woocommerce-germanized
1365
  msgctxt "trusted-shops"
1366
  msgid "%s ratings"
1367
  msgstr "Bewertungen von %s"
1368
 
1369
- #: includes/class-wc-gzd-trusted-shops.php:245
1370
  #@ woocommerce-germanized
1371
  msgctxt "trusted-shops"
1372
  msgid "Show customer reviews"
1373
  msgstr "Kundenmeinungen ansehen"
1374
 
1375
- #: includes/class-wc-gzd-trusted-shops.php:292
1376
  #@ woocommerce-germanized
1377
  msgctxt "trusted-shops"
1378
  msgid "Trusted Shops Customer Reviews"
1379
  msgstr "Trusted Shops Kundenbewertungen"
1380
 
1381
- #: includes/class-wc-gzd-trusted-shops.php:357
1382
  #@ woocommerce-germanized
1383
  msgctxt "trusted-shops"
1384
  msgid "TS-ID"
1385
  msgstr "TS-ID"
1386
 
1387
- #: includes/class-wc-gzd-trusted-shops.php:358
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:367
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:367
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:370
1407
  #@ woocommerce-germanized
1408
  msgctxt "trusted-shops"
1409
  msgid "Trustbadge code"
1410
  msgstr "Trustbadge Code"
1411
 
1412
- #: includes/class-wc-gzd-trusted-shops.php:373
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:373
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:380
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:383
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:384
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:392
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:393
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:421
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:470
1462
  #@ woocommerce-germanized
1463
  msgctxt "trusted-shops"
1464
  msgid "About Trusted Shops"
1465
  msgstr "Über Trusted Shops"
1466
 
1467
- #: includes/wc-gzd-template-functions.php:131
1468
  #@ woocommerce
1469
  msgid "Proceed to Checkout"
1470
  msgstr ""
@@ -1482,19 +1456,19 @@ msgctxt "trusted-shops"
1482
  msgid "Trusted Shops Rich Snippets"
1483
  msgstr "Trusted Shops Rich Snippets"
1484
 
1485
- #: includes/class-wc-gzd-trusted-shops.php:231
1486
  #, php-format
1487
  #@ woocommerce-germanized
1488
  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:532
1493
  #@ woocommerce-germanized
1494
  msgid "Checkout Table Color"
1495
  msgstr "Hintergrundfarbe der Tabelle"
1496
 
1497
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:534
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."
@@ -1520,7 +1494,7 @@ msgstr "Diese Nachricht ausblenden"
1520
  #: includes/admin/views/html-notice-theme-not-ready.php:14
1521
  #@ woocommerce-germanized
1522
  msgid "Theme not yet ready"
1523
- msgstr "Theme ist noch für WooCommerce Germanized optimiert"
1524
 
1525
  #: includes/admin/views/html-notice-theme-not-ready.php:15
1526
  #, php-format
@@ -1528,70 +1502,70 @@ msgstr "Theme ist noch für WooCommerce Germanized optimiert"
1528
  msgid "It seems like your theme is not yet ready for WooCommerce Germanized. Please check your theme's styles. Some things might look weird - WooCommerce Germanized can only offer basic styles. See <a href=\"%s\" target=\"_blank\">making your theme compatible</a> or check out our Theme <a href=\"%s\" target=\"_blank\">VendiPro</a> for 100&#37; compatibility."
1529
  msgstr "Wir haben festgestellt, dass dein Theme scheinbar noch nicht für WooCommerce Germanized optimiert ist. Bitte überprüfe die Style-Angaben deines Themes bzw. das Aussehen deines Shops. Manche Elemente werden möglicherweise falsch dargestellt - WooCommerce Germanized kann nur grundlegende Style-Angaben machen. Lies dir dazu <a href=\"%s\" target=\"_blank\">wie mache ich mein Theme kompatibel</a> durch oder nutze das von uns entwickelte Theme <a href=\"%s\" target=\"_blank\">VendiPro</a> für 100&#37; Kompatibilität."
1530
 
1531
- #: includes/abstracts/abstract-wc-gzd-payment-gateway.php:53
1532
  #@ woocommerce-germanized
1533
  msgid "Check if fee is taxable."
1534
  msgstr "MwSt.-Berechnung für Gebühr aktivieren."
1535
 
1536
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:578
1537
  #@ woocommerce-germanized
1538
  msgid "Legal Digital Text"
1539
  msgstr "Hinweis Digital"
1540
 
1541
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:579
1542
  #@ woocommerce-germanized
1543
  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."
1544
  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"
1545
 
1546
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:379
1547
  #@ woocommerce-germanized
1548
  msgid "Link to Details"
1549
  msgstr "Verlinkung zu Produktdetails"
1550
 
1551
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:380
1552
  #@ woocommerce-germanized
1553
  msgid "Want to link to product details page instead of add to cart within listings?"
1554
  msgstr "Anstatt des zum Warenkorb Buttons einen Button zur Produktdetail-Seite einfügen?"
1555
 
1556
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:384
1557
  #@ woocommerce-germanized
1558
  msgid "Decide whether you like to link to your product's details page instead of displaying an add to cart button within product listings."
1559
  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."
1560
 
1561
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:388
1562
  #@ woocommerce-germanized
1563
  msgid "Product Details Text"
1564
  msgstr "Produktdetails Text"
1565
 
1566
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:390
1567
  #@ woocommerce-germanized
1568
  msgid "Details"
1569
  msgstr "Details"
1570
 
1571
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:392
1572
  #@ woocommerce-germanized
1573
  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."
1574
  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."
1575
 
1576
- #: includes/class-wc-gzd-trusted-shops.php:401
1577
  #@ woocommerce-germanized
1578
  msgctxt "trusted-shops"
1579
  msgid "Enable Review Reminder"
1580
  msgstr "Bewertungserinnerung aktivieren"
1581
 
1582
- #: includes/class-wc-gzd-trusted-shops.php:402
1583
  #@ woocommerce-germanized
1584
  msgctxt "trusted-shops"
1585
  msgid "This option will enable a one-time email review reminder being sent to your customer."
1586
  msgstr "Diese Option sendet eine einmalige E-Mail Erinnerung bzgl. der Abgabe einer Bewertung über Trusted Shops an den Kunden."
1587
 
1588
- #: includes/class-wc-gzd-trusted-shops.php:410
1589
  #@ woocommerce-germanized
1590
  msgctxt "trusted-shops"
1591
  msgid "Days until reminder"
1592
  msgstr "Tage bis zur Erinnerung"
1593
 
1594
- #: includes/class-wc-gzd-trusted-shops.php:411
1595
  #@ woocommerce-germanized
1596
  msgctxt "trusted-shops"
1597
  msgid "Decide how many days after an order the email review reminder will be sent."
@@ -1667,44 +1641,44 @@ msgstr "jetzt Bewertung verfassen"
1667
  msgid "Found Bugs?"
1668
  msgstr "Bugs oder Wünsche melden"
1669
 
1670
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:484
1671
  #@ woocommerce-germanized
1672
  msgid "Shipping Costs for Virtual"
1673
  msgstr "Versandkosten virtuell"
1674
 
1675
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:485
1676
  #@ woocommerce-germanized
1677
  msgid "Select this option if you want to display shipping costs notice for virtual products."
1678
  msgstr "Versandkosten-Hinweis auch für virtuelle Produkte aktivieren?"
1679
 
1680
- #: includes/abstracts/abstract-wc-gzd-product.php:81
1681
- #: includes/wc-gzd-cart-functions.php:102
1682
- #: woocommerce-germanized.php:827
1683
  #@ woocommerce-germanized
1684
  msgid "incl. VAT"
1685
  msgstr "inkl. MwSt."
1686
 
1687
- #: includes/abstracts/abstract-wc-gzd-product.php:81
1688
  #@ woocommerce-germanized
1689
  msgid "excl. VAT"
1690
  msgstr "exkl. MwSt."
1691
 
1692
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:347
1693
  #@ woocommerce-germanized
1694
  msgid "Virtual VAT"
1695
  msgstr "USt. Änderung 2015"
1696
 
1697
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:350
1698
  #@ woocommerce-germanized
1699
  msgid "Enable Virtual VAT"
1700
  msgstr "USt. Anpassung aktivieren"
1701
 
1702
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:351
1703
  #@ woocommerce-germanized
1704
  msgid "Enable if you want to charge your customer's countries' VAT for virtual products."
1705
  msgstr "Aktiviere diese Option um für virtuelle Produkte den USt.-Satz des Dienstleistungsempfängers zu berechnen."
1706
 
1707
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:355
1708
  #, php-format
1709
  #@ woocommerce-germanized
1710
  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>."
@@ -1737,184 +1711,179 @@ msgstr "Wir übernehmen das Einfügen der unterschiedlichen EU MwSt.-Sätze für
1737
  msgid "Update WooCommerce Germanized"
1738
  msgstr "WooCommerce Germanized aktualisieren"
1739
 
1740
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:278
1741
  #@ woocommerce-germanized
1742
  msgid "Unit Price Text"
1743
  msgstr "Einheitspreis Text"
1744
 
1745
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:279
1746
  #@ woocommerce-germanized
1747
  msgid "This text will be used to display the unit price. Use {price} to insert the price."
1748
  msgstr "Dieser Text wird verwendet um den Einheitspreis darzustellen. Nutze {price} als Platzhalter für den eigentlichen Preis."
1749
 
1750
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:284
1751
  #@ woocommerce-germanized
1752
  msgid "{price}"
1753
  msgstr "{price}"
1754
 
1755
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:717
1756
  #@ woocommerce-germanized
1757
  msgid "Sorry, but the new Virtual VAT rules cannot be applied to small business."
1758
  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."
1759
 
1760
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:104
1761
  #@ woocommerce-germanized
1762
  msgid "Add title field"
1763
  msgstr "Anrede im Checkout"
1764
 
1765
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:105
1766
  #@ woocommerce-germanized
1767
  msgid "Add a title field to the address within checkout?"
1768
  msgstr "Fügt ein Feld \"Anrede\" im Checkout hinzu."
1769
 
1770
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:569
1771
  #@ woocommerce-germanized
1772
  msgid "Show digital notice"
1773
  msgstr "Checkbox digitale Produkte"
1774
 
1775
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:570
1776
  #@ woocommerce-germanized
1777
  msgid "Show checkbox for digital products."
1778
- msgstr "Checkbox bei digitalen Produkten anzeigen"
1779
 
1780
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:571
1781
  #@ woocommerce-germanized
1782
  msgid "Disable this option if you want your customers to obtain their right of recission even if digital products are being bought."
1783
  msgstr "Diese Option setzt im Checkout eine Checkbox falls sich im Warenkorb digitale Produkte befinden. Hier können Kunden darauf aufmerksam gemacht werden, dass im Falle von digitalen Produkten das Widerrufsrecht erlischt."
1784
 
1785
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:505
1786
  #@ woocommerce-germanized
1787
  msgid "Show Thumbnails"
1788
  msgstr "Thumbnails anzeigen"
1789
 
1790
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:506
1791
  #@ woocommerce-germanized
1792
  msgid "Show product thumbnails on checkout page?"
1793
  msgstr "Produktbilder im Checkout darstellen?"
1794
 
1795
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:510
1796
  #@ woocommerce-germanized
1797
  msgid "Uncheck if you don't want to show your product thumbnails within checkout table."
1798
  msgstr "Deaktiviere diese Option, wenn du keine Produkbilder im Checkout angezeigt bekommen möchtest."
1799
 
1800
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:514
1801
  #@ woocommerce-germanized
1802
  msgid "Hide Shipping Select"
1803
- msgstr "Versandmethoden Auswahl"
1804
 
1805
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:515
1806
  #@ woocommerce-germanized
1807
  msgid "Hide shipping rate selection from checkout?"
1808
- msgstr "Die Auswahl von Versandmethoden im Checkout deaktivieren?"
1809
 
1810
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:519
1811
  #@ woocommerce-germanized
1812
  msgid "This option will hide shipping rate selection from checkout. By then customers will only be able to change their shipping rate on cart page."
1813
- msgstr "Diese Option deaktiviert die Darstellung der Versandmethoden Auswahl im Checkout. Kunden können von nun an nur noch über den Warenkorb die Versandmethode ändern."
1814
 
1815
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:496
1816
  #@ woocommerce-germanized
1817
  msgid "Hide taxes estimated"
1818
  msgstr "Hinweis \"Steuern geschätzt\""
1819
 
1820
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:497
1821
  #@ woocommerce-germanized
1822
  msgid "Do you want to hide the \"taxes and shipping estimated\" text from your cart?"
1823
  msgstr "Den Hinweis \"Versandkosten und Steuern werden geschätzt\" entfernen?"
1824
 
1825
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:501
1826
  #@ woocommerce-germanized
1827
  msgid "By default WooCommerce adds a \"taxes and shipping estimated\" text to your cart. This might puzzle your customers and may not meet german law."
1828
  msgstr "Der Hinweistext im Warenkorb zur Schätzung von Steuern und Versandkosten kann für Verwirrung beim Kunden sorgen und scheint nicht für den deutschen Markt geeignet."
1829
 
1830
- #: includes/abstracts/abstract-wc-gzd-product.php:82
1831
  #, php-format
1832
  #@ woocommerce-germanized
1833
  msgid "excl. %s%% VAT"
1834
  msgstr "exkl. %s%% MwSt."
1835
 
1836
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:523
1837
  #@ woocommerce-germanized
1838
  msgid "Show back to cart button"
1839
  msgstr "Bestellung bearbeiten"
1840
 
1841
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:524
1842
  #@ woocommerce-germanized
1843
  msgid "Show back to cart button within your checkout table?"
1844
  msgstr "Einen \"Bestellung bearbeiten\" Button in der Bestellübersicht anzeigen?"
1845
 
1846
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:528
1847
  #@ woocommerce-germanized
1848
  msgid "This button may let your customer edit their order before submitting. Some people state that this button should be hidden to avoid legal problems."
1849
  msgstr "Dieser Button ermöglicht es deinen Kunden etwaige Falscheingaben (d.h. fälschlich ausgewählte Produkte) zu korrigieren und zurück zum Warenkorb zu gelangen. Je nach Darstellung in deinem Theme könnte es allerdings auch das Risiko für Abmahnungen erhöhen, da zwischen Pflichtangaben und Kaufen-Button keine weitere Informationen abgedruckt werden sollten."
1850
 
1851
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:211
1852
  #@ woocommerce-germanized
1853
  msgid "Shipping Costs Tax"
1854
  msgstr "Steuerberechnung"
1855
 
1856
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:212
1857
  #@ woocommerce-germanized
1858
  msgid "Enable better taxation for shpping costs?"
1859
  msgstr "Genauere Steuerberechnung für Versandkosten aktivieren?"
1860
 
1861
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:216
1862
  #, php-format
1863
  #@ woocommerce-germanized
1864
  msgid "By choosing this option shipping cost taxation will be calculated based on tax rates within cart. Imagine the following example. Further information can be found <a href=\"%s\" target=\"_blank\">here</a>. %s"
1865
  msgstr "Mit der Auswahl dieser Option werden die Steuern für Versandkosten basierend auf den Anteilen der Steuersätze der Artikel im Warenkorb berechnet. Weitere Informationen findest du <a href=\"%s\" target=\"_blank\">hier</a>. Falls du vorher mit Nettobeträgen gearbeitet hast, ändere die Versandkosten bitte in Bruttobeträge. Hier ein kleines Beispiel: %s"
1866
 
1867
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:220
1868
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:242
1869
  #@ woocommerce-germanized
1870
  msgid "Force Tax Calculation"
1871
  msgstr "Steuerberechnung erzwingen"
1872
 
1873
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:221
1874
  #@ woocommerce-germanized
1875
  msgid "Force shipping costs tax calculation for every method?"
1876
- msgstr "Erzwinge die Besteuerung für Versandkosten für jede Versandmethode?"
1877
 
1878
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:225
1879
  #@ woocommerce-germanized
1880
  msgid "This option will overwrite settings for each individual shipping method to force tax calculation (instead of only calculating tax for those methods which are taxeable)."
1881
- msgstr "Diese Option überschreibt alle abweichenden Einstellungen verschiedener Versandmethoden und erzwingt die Steuerberechnung."
1882
 
1883
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:230
1884
  #@ woocommerce-germanized
1885
  msgid "Fees"
1886
  msgstr "Gebühren"
1887
 
1888
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:233
1889
  #@ woocommerce-germanized
1890
  msgid "Fee Tax"
1891
  msgstr "Steuerberechnung"
1892
 
1893
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:234
1894
  #@ woocommerce-germanized
1895
  msgid "Enable better taxation for fees?"
1896
  msgstr "Genauere Steuerberechnung für Gebühren aktivieren?"
1897
 
1898
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:238
1899
  #@ woocommerce-germanized
1900
  msgid "By choosing this option fee taxation will be calculated based on tax rates within cart. See shipping costs taxation for more information."
1901
  msgstr "Mit Hilfe dieser Option werden die Steuern für Gebühren basierend auf den Steuersätzen der Artikel im Warenkorb berechnet (siehe Steuern für Versandkosten für weitere Informationen). Bitte passe auch hier etwaige Nettobeträge in Bruttobeträge an."
1902
 
1903
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:243
1904
  #@ woocommerce-germanized
1905
  msgid "Force fee tax calculation for every fee?"
1906
  msgstr "Berechnung der Steuern für Gebühren erzwingen?"
1907
 
1908
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:247
1909
  #@ woocommerce-germanized
1910
  msgid "This option will overwrite settings for each individual fee to force tax calculation (instead of only calculating tax for those fees which are taxeable)."
1911
  msgstr "Diese Option überschreibt die Einstellungen aller Gebühren und erzwingt die Steuerberechnung."
1912
 
1913
- #: templates/checkout/review-order.php:21
1914
- #@ woocommerce-germanized
1915
- msgid "Total Sum"
1916
- msgstr "Gesamtsumme"
1917
-
1918
  #: includes/admin/views/html-notice-theme-incompatibility.php:15
1919
  #, php-format
1920
  #@ woocommerce-germanized
@@ -1922,6 +1891,8 @@ msgid "It seems like your theme tries to overwrite legally relevant templates. P
1922
  msgstr "Es sieht so aus als wenn dein aktuelles Theme versucht rechtlich relevante Templates (kritische Templates: %s) zu überschreiben. Bitte überprüfe deinen Shop und insbesondere den Bezahlvorgang. WooCommerce Germanized musste das Überschreiben dieser Templates verhindern um für Rechtssicherheit sorgen zu können. Bitte lies dazu <a href=\"%s\" target=\"_blank\">mein Theme kompatibel machen</a> oder schau dir das von uns entwickelte Theme <a href=\"%s\" target=\"_blank\">VendiPro</a> für 100&#37; Kompatibilität an."
1923
 
1924
  #: templates/checkout/review-order-2-2.php:71
 
 
1925
  #@ woocommerce
1926
  msgid "Total"
1927
  msgstr ""
@@ -1936,33 +1907,33 @@ msgstr "Double Opt-In"
1936
  msgid "Yes, customer opted in"
1937
  msgstr "Ja, Kunde wurde per Double Opt-In bestätigt."
1938
 
1939
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:252
1940
  #@ woocommerce-germanized
1941
  msgid "Customers"
1942
  msgstr "Kunden"
1943
 
1944
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:255
1945
  #@ woocommerce-germanized
1946
  msgid "Customer Double Opt In"
1947
  msgstr "Double Opt-In"
1948
 
1949
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:256
1950
  #@ woocommerce-germanized
1951
  msgid "Enable customer double opt in on registration?"
1952
  msgstr "Double Opt-In Verfahren für Kundenkonten aktivieren?"
1953
 
1954
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:257
1955
  #, php-format
1956
  #@ woocommerce-germanized
1957
  msgid "If customer chooses to create a customer account an email with an activation link will be sent by mail. Customer account will be marked as activated if user clicks on the link within the email. More information on this topic can be found <a href=\"%s\" target=\"_blank\">here</a>."
1958
- msgstr "Wenn ein Kunde sich dazu entscheidet ein Benutzerkonto zu erstellen, erhält dieser eine E-Mail mit einem Bestätigungslink. Insofern der Kunde diesen Bestätigungslink anklickt, wird das Konto als bestätigt markiert. Dieses Verfahren ist laut Amtsgericht Berlin Pankow/Weißensee notwendig. Mehr Informationen findest du <a href=\\\"%s\\\" target=\\\"_blank\\\">hier</a>."
1959
 
1960
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:264
1961
  #@ woocommerce-germanized
1962
  msgid "Delete Unactivated After"
1963
  msgstr "Unaktivierte löschen nach"
1964
 
1965
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:265
1966
  #@ woocommerce-germanized
1967
  msgid "This will make sure unactivated customer accounts will be deleted after X days. Set to 0 if you don't want to automatically delete unactivated customers."
1968
  msgstr "Diese Option sorgt dafür, dass unaktivierte Kundenkonten nach X Tagen automatisch gelöscht werden. Falls du die Löschung verhindern möchtest, setze den Wert auf 0."
@@ -2016,24 +1987,241 @@ msgstr "Wenn Sie bei %s kein Benutzerkonto eröffnet haben, ignorieren Sie diese
2016
  msgid "If you cannot follow the link above please copy this url and paste it to your browser bar: %s"
2017
  msgstr "Falls Sie dem Link nicht folgen können, kopieren Sie bitte folgende URL in die Adresszeile Ihres Browsers: %s"
2018
 
2019
- #. translators: plugin header field 'Version'
2020
- #: woocommerce-germanized.php:0
2021
- #@ woocommerce-germanized
2022
- msgid "1.2.1"
2023
- msgstr "1.2.1"
2024
-
2025
- #: woocommerce-germanized.php:725
2026
  #@ woocommerce-germanized
2027
  msgid "Thank you. You have successfully activated your account."
2028
  msgstr "Vielen Dank. Ihr Benutzerkonto wurde erfolgreich aktiviert."
2029
 
2030
- #: woocommerce-germanized.php:729
2031
  #@ woocommerce-germanized
2032
  msgid "Sorry, but this activation code cannot be found."
2033
  msgstr "Sorry, dieser Aktivierungscode ist uns leider nicht bekannt."
2034
 
2035
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:266
2036
  #@ woocommerce-germanized
2037
  msgid "days"
2038
  msgstr "Tagen"
2039
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: WooCommerce Germanized v1.3.0\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2014-09-29 12:26+0100\n"
6
+ "PO-Revision-Date: 2015-04-30 10:33:31+0000\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
85
  msgid "Welcome to WooCommerce Germanized"
86
  msgstr "Willkommen bei WooCommerce Germanized"
87
 
88
+ #: includes/admin/class-wc-gzd-admin-welcome.php:258
89
  #@ woocommerce-germanized
90
  msgid "Go to WooCommerce Germanized Settings"
91
  msgstr "zu den WooCommerce Germanized Einstellungen"
100
  msgid "Cheatin&#8217; huh?"
101
  msgstr "So geht das leider nicht.."
102
 
103
+ #: includes/admin/class-wc-gzd-admin.php:64
104
  #@ woocommerce-germanized
105
  msgid "Optional Email Content"
106
  msgstr "Optionaler E-Mail Inhalt"
107
 
108
+ #: includes/admin/class-wc-gzd-admin.php:73
109
  #@ woocommerce-germanized
110
  msgid "Add content which will be replacing default page content within emails."
111
  msgstr "Füllen Sie dieses Feld aus um einen abweichenden E-Mail Anhangstext für diese Seite zu bestimmen."
112
 
113
+ #: includes/admin/class-wc-gzd-admin.php:82
114
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:66
115
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:125
116
  #@ woocommerce-germanized
117
  msgid "Optional Mini Description"
118
  msgstr "Warenkorb Kurzbeschreibung"
119
 
120
+ #: includes/admin/class-wc-gzd-admin.php:87
121
  #@ woocommerce-germanized
122
  msgid "This content will be shown as short product description within checkout and emails."
123
  msgstr "Dieser Inhalt wird während des Bezahlvorganges und in den E-Mails als Produkt Kurzbeschreibung angezeigt."
124
 
125
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:36
126
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:83
127
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:33
128
+ #: includes/class-wc-gzd-post-types.php:66
129
  #@ woocommerce-germanized
130
  msgid "Unit"
131
  msgstr "Einheit"
132
 
133
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:38
134
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:85
135
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:113
136
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:81
137
+ #: includes/class-wc-gzd-trusted-shops.php:440
 
138
  #@ woocommerce-germanized
139
  msgid "None"
140
  msgstr "Keine"
141
 
142
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:45
143
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:92
144
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:34
145
  #@ woocommerce-germanized
146
  msgid "Unit Base"
147
  msgstr "Anzahl Einheiten"
148
 
149
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:49
150
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:98
151
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:35
152
  #@ woocommerce-germanized
153
  msgid "Regular Unit Price"
154
  msgstr "Einheitspreis"
155
 
156
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:53
157
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:102
158
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:36
159
  #@ woocommerce-germanized
160
  msgid "Sale Unit Price"
161
  msgstr "Aktions-Einheitspreis"
162
 
163
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:59
164
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:108
165
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:43
166
  #@ woocommerce-germanized
167
  msgid "Delivery Time"
168
  msgstr "Lieferzeit"
169
 
170
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:33
171
  #@ woocommerce-germanized
172
  msgid "Select unit"
173
  msgstr "Einheit auswählen"
174
 
175
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:33
176
  #@ woocommerce-germanized
177
  msgid "Needed if selling on a per unit basis"
178
  msgstr "Notwendig falls auf pro-Einheit-Basis verkauft werden soll"
179
 
180
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:34
181
  #@ woocommerce-germanized
182
  msgid "Unit price per amount (e.g. 100)"
183
  msgstr "Anzahl der Einheiten, auf die sich der Einheitspreis bezieht"
184
 
185
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:25
186
  #@ woocommerce-germanized
187
  msgid "Germanized"
188
  msgstr "Germanized"
189
 
190
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:68
191
  #@ woocommerce-germanized
192
  msgid "General Options"
193
  msgstr "Allgemein"
194
 
195
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:69
196
  #@ woocommerce-germanized
197
  msgid "Display Options"
198
  msgstr "Anzeige"
199
 
200
+ #: includes/class-wc-gzd-trusted-shops.php:593
201
  #@ woocommerce-germanized
202
  msgctxt "trusted-shops"
203
  msgid "Trusted Shops Options"
209
  msgid "eKomi Options"
210
  msgstr "eKomi"
211
 
212
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:94
213
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:434
214
  #@ woocommerce-germanized
215
  msgid "General"
216
  msgstr "Allgemein"
217
 
218
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:97
219
  #@ woocommerce-germanized
220
  msgid "Small-Enterprise-Regulation"
221
  msgstr "Kleinunternehmerregelung"
222
 
223
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:98
224
  #@ woocommerce-germanized
225
  msgid "VAT based on &#167;19 UStG"
226
+ msgstr "Umsatzsteuerbefreit nach &#167;19 UStG."
227
 
228
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:102
229
  #, php-format
230
  #@ woocommerce-germanized
231
  msgid "set this Option if you have chosen <a href=\"%s\" target=\"_blank\">&#167;19 UStG</a>"
232
  msgstr "wähle diese Option, falls du von der Kleinunternehmerregelung (<a href=\"%s\" target=\"_blank\">&#167;19 UStG</a>) betroffen bist und davon Gebrauch machen willst."
233
 
234
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:106
235
  #@ woocommerce-germanized
236
  msgid "Show no VAT notice"
237
  msgstr "Umsatzsteuerbefreiung"
238
 
239
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:107
240
  #@ woocommerce-germanized
241
  msgid "Show no VAT &#167;19 UStG notice on single product"
242
+ msgstr "Hinweis zur Umsatzsteuerbefreiung gemäß &#167;19 UStG auf der Produktseite anzeigen."
243
 
244
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:114
245
  #@ woocommerce-germanized
246
  msgid "Submit Order Button Text"
247
  msgstr "Kauf abschließen - Text"
248
 
249
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:115
250
  #@ woocommerce-germanized
251
  msgid "This text serves as Button text for the Order Submit Button."
252
  msgstr "Dieser Text wird auf dem Kauf abschließen Button dargestellt"
253
 
254
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:120
255
  #@ woocommerce-germanized
256
  msgid "Buy Now"
257
  msgstr "Jetzt kaufen"
258
 
259
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:124
260
  #@ woocommerce-germanized
261
  msgid "Phone as required field"
262
  msgstr "Telefon als Pflichtfeld"
263
 
264
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:125
265
  #@ woocommerce-germanized
266
  msgid "Should phone number be a required field within checkout?"
267
  msgstr "Diese Option setzen, damit die Telefonnummer ein Pflichtfeld im Checkout ist."
268
 
269
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:153
270
  #@ woocommerce-germanized
271
  msgid "Legal Pages"
272
  msgstr "Rechtlich relevante Seiten"
273
 
274
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:156
275
  #@ woocommerce-germanized
276
  msgid "Imprint"
277
  msgstr "Impressum"
278
 
279
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:157
280
  #@ woocommerce-germanized
281
  msgid "This page should contain an imprint with your company's information."
282
  msgstr "Diese Seite sollte das Impressum d.h. die Informationen (gemäß TMG) zu Ihrem Unternehmen enthalten."
283
 
284
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:238
285
  #@ woocommerce-germanized
286
  msgid "Shipping Costs"
287
  msgstr "Versandkosten"
288
 
289
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:167
290
  #@ woocommerce-germanized
291
  msgid "Data Security Statement"
292
  msgstr "Datenschutzbelehrung"
293
 
294
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:168
295
  #@ woocommerce-germanized
296
  msgid "This page should contain information regarding your data security policy."
297
  msgstr "Diese Seite sollte Ihre Datenschutzbelehrung enthalten."
298
 
299
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:178
300
  #@ woocommerce-germanized
301
  msgid "Power of Revocation"
302
  msgstr "Widerrufsbelehrung"
303
 
304
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:179
305
  #@ woocommerce-germanized
306
  msgid "This page should contain information regarding your customer's Right of Revocation."
307
  msgstr "Diese Seite sollte Ihre Widerrufsbelehrung enthalten. Nutzen Sie folgenden Shortcut um ein Widerrufsformular in die Seite einzubinden: [revocation_form]"
308
 
309
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:189
310
  #@ woocommerce-germanized
311
  msgid "Payment Methods"
312
+ msgstr "Zahlungarten"
313
 
314
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:190
315
  #@ woocommerce-germanized
316
  msgid "This page should contain information regarding the Payment Methods that are chooseable during checkout."
317
  msgstr "Diese Seite sollte Informationen zu den von Ihnen zur Verfügung gestellten Zahlungsmöglichkeiten bereitstellen. Nutzen Sie dafür z.B. folgenden Shortcut: [payment_methods_info]"
318
 
319
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:200
320
  #@ woocommerce-germanized
321
  msgid "Shipping Methods"
322
+ msgstr "Versandarten"
323
 
324
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:201
325
  #@ woocommerce-germanized
326
  msgid "This page should contain information regarding shipping methods that are chooseable during checkout."
327
+ msgstr "Diese Seite sollte Informationen zu den von Ihnen zur Verfügung gestellten Versandarten bereitstellen."
328
 
329
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:212
330
  #@ woocommerce-germanized
331
  msgid "Delivery Times"
332
  msgstr "Lieferzeiten"
333
 
334
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:215
335
  #@ woocommerce-germanized
336
  msgid "Default Delivery Time"
337
  msgstr "Standard-Lieferzeit"
338
 
339
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:216
340
  #@ woocommerce-germanized
341
  msgid "This delivery time will be added to every product if no delivery time has been chosen individually"
342
  msgstr "Diese Lieferzeit wird bei Produkten angezeigt, denen keine Lieferzeit zugeordnet wurde"
343
 
344
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:227
345
  #@ woocommerce-germanized
346
  msgid "Delivery Time Text"
347
  msgstr "Lieferzeit Text"
348
 
349
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:228
350
  #@ woocommerce-germanized
351
  msgid "This text will be used to indicate delivery time for products. Use {delivery_time} as placeholder."
352
  msgstr "Dieser Text wird verwendet um die Lieferzeit im Frontend darzustellen. {delivery_time} als Platzhalter verwenden."
353
 
354
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:233
355
  #@ woocommerce-germanized
356
  msgid "Delivery time: {delivery_time}"
357
  msgstr "Lieferzeit: {delivery_time}"
358
 
359
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:241
360
  #@ woocommerce-germanized
361
  msgid "Shipping Costs Text"
362
  msgstr "Versandkosten Text"
363
 
364
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:242
365
  #@ woocommerce-germanized
366
  msgid "This text will be used to inform the customer about shipping costs. Use {link}{/link} to insert link to shipping costs page."
367
  msgstr "Dieser Text wird genutzt um die Kunden im Frontend über u.U. anfallende Lieferkosten zu informieren. Nutzen Sie die Platzhalter {link}{/link} um den Link zur Versandkosten-Seite einzufügen."
368
 
369
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:247
370
  #@ woocommerce-germanized
371
  msgid "plus {link}Shipping Costs{/link}"
372
  msgstr "zzgl. {link}Versandkosten{/link}"
373
 
374
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:329
375
  #@ woocommerce-germanized
376
  msgid "Right of Recission"
377
  msgstr "Widerrufsrecht"
378
 
379
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:332
380
  #@ woocommerce-germanized
381
  msgid "Revocation Address"
382
  msgstr "Widerruf richten an"
383
 
384
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:333
385
  #@ woocommerce-germanized
386
  msgid "Type in an address, telephone/telefax number, email address which is to be used as revocation address"
387
  msgstr "Geben Sie hier Ihre Adresse, Telefon- und Faxnummer, E-Mail Adresse usw. an, an die Ihre Kunden Ihren Widerruf richten sollen"
388
 
389
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:342
390
  #@ woocommerce-germanized
391
  msgid "E-Mails"
392
  msgstr "E-Mails"
393
 
394
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:345
395
  #@ woocommerce-germanized
396
  msgid "Attach Imprint"
397
  msgstr "Impressum"
398
 
399
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:346
400
  #@ woocommerce-germanized
401
  msgid "Attach Imprint to the following email templates"
402
  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)"
403
 
404
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:355
405
  #@ woocommerce-germanized
406
  msgid "Attach Terms & Conditions"
407
  msgstr "AGB"
408
 
409
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:356
410
  #@ woocommerce-germanized
411
  msgid "Attach Terms & Conditions to the following email templates"
412
  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)"
413
 
414
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:365
415
  #@ woocommerce-germanized
416
  msgid "Attach Power of Recission"
417
  msgstr "Widerrufsbelehrung"
418
 
419
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:366
420
  #@ woocommerce-germanized
421
  msgid "Attach Power of Recission to the following email templates"
422
  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."
423
 
424
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:376
425
  #@ woocommerce-germanized
426
  msgid "Attach Data Security"
427
  msgstr "Datenschutzbelehrung"
428
 
429
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:377
430
  #@ woocommerce-germanized
431
  msgid "Attach Data Security Statement to the following email templates"
432
  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)"
433
 
434
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:437
435
  #@ woocommerce-germanized
436
  msgid "Add to Cart"
437
  msgstr "Zum Warenkorb Button"
438
 
439
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:438
440
  #@ woocommerce-germanized
441
  msgid "Show add to cart button on listings?"
442
  msgstr "Den zum Warenkorb Button in Produktlisten darstellen?"
443
 
444
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:442
445
  #@ woocommerce-germanized
446
  msgid "unset this option if you don't want to show the add to cart button within the product listings"
447
  msgstr "Deaktivieren Sie diese Option, wenn Sie den zum Warenkorb Button nicht innerhalb von Produktauflistungen darstellen möchten"
448
 
449
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:464
450
  #@ woocommerce-germanized
451
  msgid "Notice Footer"
452
  msgstr "Hinweise im Footer"
453
 
454
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:465
455
  #@ woocommerce-germanized
456
  msgid "Show a global VAT notice within footer"
457
+ msgstr "Einen seitenübergreifenden Hinweis bzgl. der MwSt. im Footer einfügen."
458
 
459
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:473
460
  #@ woocommerce-germanized
461
  msgid "Show a global sale price notice within footer"
462
+ msgstr "Einen seitenübergreifenden Hinweis bzgl. reduzierter Preise im Footer einfügen."
463
 
464
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:482
465
  #@ woocommerce-germanized
466
  msgid "Products"
467
  msgstr "Produkt"
468
 
469
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:485
470
  #@ woocommerce-germanized
471
  msgid "Show within Product Listings"
472
  msgstr "In Produktlisten"
473
 
474
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:486
475
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:519
476
  #@ woocommerce-germanized
477
  msgid "Shipping Costs notice"
478
  msgstr "Versandkosten-Hinweis"
479
 
480
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:315
481
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:502
482
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:535
483
  #@ woocommerce-germanized
484
  msgid "Unit Price"
485
  msgstr "Einheitspreis"
486
 
487
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:510
488
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:543
489
  #@ woocommerce-germanized
490
  msgid "Delivery Time Notice"
491
  msgstr "Lieferzeiten-Hinweis"
492
 
493
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:518
494
  #@ woocommerce-germanized
495
  msgid "Show on Product Detail Page"
496
  msgstr "Auf der Produktseite"
497
 
498
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:494
499
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:527
500
  #@ woocommerce-germanized
501
  msgid "Tax Info"
502
  msgstr "MwSt. Hinweis"
503
 
504
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:560
505
  #@ woocommerce-germanized
506
  msgid "Checkout & Cart"
507
  msgstr "Checkout & Warenkorb"
508
 
509
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:629
510
  #@ woocommerce-germanized
511
  msgid "Checkout Legal Display"
512
  msgstr "Checkbox oder Text"
513
 
514
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:630
515
  #@ woocommerce-germanized
516
  msgid "Use Text without Checkbox"
517
+ msgstr "Rechtshinweis ohne Checkbox."
518
 
519
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:632
520
  #@ woocommerce-germanized
521
  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)."
522
  msgstr "Diese Option nutzt anstatt einer Checkbox einen ausformulierten Text direkt überhalb des Kauf abschließen Buttons (Zalando und Andere Shops verwenden diese Form)"
523
 
524
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:638
525
  #@ woocommerce-germanized
526
  msgid "Legal Text"
527
  msgstr "Rechtlicher Hinweistext"
528
 
529
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:639
530
  #@ woocommerce-germanized
531
  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."
532
  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."
533
 
534
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:641
535
  #@ woocommerce-germanized
536
  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}."
537
  msgstr "Mit Ihrer Bestellung erklären Sie sich mit unseren {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link} einverstanden."
538
 
539
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:648
540
  #@ woocommerce-germanized
541
  msgid "Legal Text Error"
542
  msgstr "Fehlermeldung der Checkbox"
543
 
544
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:649
545
  #@ woocommerce-germanized
546
  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."
547
  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}"
548
 
549
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:651
550
  #@ woocommerce-germanized
551
  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}."
552
  msgstr "Bitte akzeptieren Sie unsere {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
553
 
554
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:677
555
  #@ woocommerce-germanized
556
  msgid "Order Success Text"
557
  msgstr "Bestellung eingegangen"
558
 
559
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:678
560
  #@ woocommerce-germanized
561
  msgid "Choose a custom text to display on order success page."
562
  msgstr "Hier können Sie einen individuellen kurzen Text eingeben, der nach der Bestellung ausgegeben wird."
563
 
564
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:686
565
  #@ woocommerce-germanized
566
  msgid "Order Success Data"
567
  msgstr "Bestellbestätigungs-Daten"
568
 
569
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:687
570
  #@ woocommerce-germanized
571
  msgid "Hide product table and customer data on order success page"
572
+ msgstr "Produktdetails (Tabelle, Kundeninformationen) von der Bestätigungsseite entfernen."
573
 
574
  #: includes/admin/views/html-notice-install.php:13
575
  #@ woocommerce-germanized
611
  msgid "Skip setup"
612
  msgstr "Setup überspringen"
613
 
614
+ #: includes/class-wc-gzd-ajax.php:79
615
  #@ woocommerce-germanized
616
  msgctxt "revocation-form"
617
  msgid "is not a valid email address."
618
  msgstr "ist leider keine valide E-Mail Adresse."
619
 
620
+ #: includes/class-wc-gzd-ajax.php:82
621
  #@ woocommerce-germanized
622
  msgctxt "revocation-form"
623
  msgid "Please enter a valid postcode/ZIP"
624
  msgstr "Bitte geben Sie eine echte Postleitzahl ein"
625
 
626
+ #: includes/class-wc-gzd-ajax.php:85
627
  #@ woocommerce-germanized
628
  msgctxt "revocation-form"
629
  msgid "is not valid."
630
  msgstr "ist leider nicht korrekt."
631
 
632
+ #: includes/class-wc-gzd-ajax.php:100
633
  #@ woocommerce-germanized
634
  msgctxt "revocation-form"
635
  msgid "Thank you. We have received your Revocation Request. You will receive a conformation email within a few minutes."
739
  msgid "Number of days between an order being marked as completed and review email to customer."
740
  msgstr "Anzahl der Tage zwischen dem Datum an dem die Bestellung als \"abgeschlossen\" (completed) markiert wurde und dem Absenden der Bewertungseinladung an den Kunden"
741
 
742
+ #: includes/class-wc-gzd-emails.php:174
743
  #@ woocommerce-germanized
744
  msgctxt "revocation-form"
745
  msgid "Forward your Revocation online"
746
  msgstr "Ihren Widerruf online erklären"
747
 
748
+ #: includes/class-wc-gzd-install.php:107
749
  #, php-format
750
  #@ woocommerce-germanized
751
  msgid "Please install <a href=\"%s\" target=\"_blank\">WooCommerce</a> before installing WooCommerce Germanized. Thank you!"
752
  msgstr "Bitte installieren Sie <a href=\"%s\" target=\"_blank\">WooCommerce</a> bevor Sie WooCommerce Germanized installieren. Vielen Dank!"
753
 
754
+ #: includes/class-wc-gzd-install.php:332
755
  #@ woocommerce-germanized
756
  msgctxt "Page slug"
757
  msgid "data-security"
758
  msgstr "datenschutzbelehrung"
759
 
760
+ #: includes/class-wc-gzd-install.php:333
761
  #@ woocommerce-germanized
762
  msgctxt "Page title"
763
  msgid "Data Security Statement"
764
  msgstr "Datenschutzbelehrung"
765
 
766
+ #: includes/class-wc-gzd-install.php:337
767
  #@ woocommerce-germanized
768
  msgctxt "Page slug"
769
  msgid "imprint"
770
  msgstr "impressum"
771
 
772
+ #: includes/class-wc-gzd-install.php:338
773
  #@ woocommerce-germanized
774
  msgctxt "Page title"
775
  msgid "Imprint"
776
  msgstr "Impressum"
777
 
778
+ #: includes/class-wc-gzd-install.php:342
779
  #@ woocommerce-germanized
780
  msgctxt "Page slug"
781
  msgid "terms"
782
  msgstr "agb"
783
 
784
+ #: includes/class-wc-gzd-install.php:343
785
  #@ woocommerce-germanized
786
  msgctxt "Page title"
787
  msgid "Terms & Conditions"
788
  msgstr "AGB"
789
 
790
+ #: includes/class-wc-gzd-install.php:347
791
  #@ woocommerce-germanized
792
  msgctxt "Page slug"
793
  msgid "revocation"
794
  msgstr "widerrufsbelehrung"
795
 
796
+ #: includes/class-wc-gzd-install.php:348
797
  #@ woocommerce-germanized
798
  msgctxt "Page title"
799
  msgid "Power of Revocation"
800
  msgstr "Widerrufsbelehrung"
801
 
802
+ #: includes/class-wc-gzd-install.php:357
803
  #@ woocommerce-germanized
804
  msgctxt "Page slug"
805
  msgid "payment-methods"
806
  msgstr "bezahlmoeglichkeiten"
807
 
808
+ #: includes/class-wc-gzd-install.php:358
809
  #@ woocommerce-germanized
810
  msgctxt "Page title"
811
  msgid "Payment Methods"
812
+ msgstr "Zahlungsarten"
813
 
814
+ #: includes/class-wc-gzd-install.php:352
815
  #@ woocommerce-germanized
816
  msgctxt "Page slug"
817
  msgid "shipping-methods"
818
+ msgstr "versandarten"
819
 
820
+ #: includes/class-wc-gzd-install.php:353
821
  #@ woocommerce-germanized
822
  msgctxt "Page title"
823
  msgid "Shipping Methods"
824
+ msgstr "Versandarten"
825
 
826
+ #: includes/class-wc-gzd-post-types.php:33
827
+ #: includes/class-wc-gzd-post-types.php:35
828
  #@ woocommerce-germanized
829
  msgid "Product Delivery Times"
830
  msgstr "Lieferzeiten"
831
 
832
+ #: includes/class-wc-gzd-post-types.php:36
833
  #@ woocommerce-germanized
834
  msgid "Product Delivery Time"
835
  msgstr "Lieferzeit"
836
 
837
+ #: includes/class-wc-gzd-post-types.php:37
838
  #@ woocommerce-germanized
839
  msgctxt "Admin menu name"
840
  msgid "Delivery Time"
841
+ msgstr "Lieferzeiten"
842
 
843
+ #: includes/class-wc-gzd-post-types.php:38
844
  #@ woocommerce-germanized
845
  msgid "Search Delivery Times"
846
  msgstr "Lieferzeiten durchsuchen"
847
 
848
+ #: includes/class-wc-gzd-post-types.php:39
849
  #@ woocommerce-germanized
850
  msgid "All Product Delivery Times"
851
  msgstr "Alle Lieferzeiten"
852
 
853
+ #: includes/class-wc-gzd-post-types.php:40
854
  #@ woocommerce-germanized
855
  msgid "Edit Product Delivery Time"
856
  msgstr "Lieferzeit bearbeiten"
857
 
858
+ #: includes/class-wc-gzd-post-types.php:41
859
  #@ woocommerce-germanized
860
  msgid "Update Product Delivery Time"
861
  msgstr "Lieferzeit aktualisieren"
862
 
863
+ #: includes/class-wc-gzd-post-types.php:42
864
  #@ woocommerce-germanized
865
  msgid "Add New Product Delivery Time"
866
  msgstr "Neue Lieferzeit hinzufügen"
867
 
868
+ #: includes/class-wc-gzd-post-types.php:43
869
  #@ woocommerce-germanized
870
  msgid "New Product Delivery Time Name"
871
  msgstr "Lieferzeit Dauer"
886
  #@ woocommerce-germanized
887
  msgctxt "revocation-form"
888
  msgid "I/We hereby give notice that I/We withdraw from my/our contract of sale of the following goods/provision of the following service: "
889
+ msgstr "Hiermit widerrufe(n) ich/wir den von mir/uns abgeschlossenen Vertrag über den Kauf der folgenden Waren / die Erbringung der folgenden Dienstleistung: "
890
 
891
  #: includes/class-wc-gzd-revocation.php:29
892
  #@ woocommerce-germanized
900
  msgid "Order Date"
901
  msgstr "Datum der Bestellung"
902
 
903
+ #: includes/class-wc-gzd-revocation.php:35
904
  #@ woocommerce-germanized
905
  msgctxt "revocation-form"
906
  msgid "Customer Data"
907
  msgstr "Kundeninformationen"
908
 
909
+ #: includes/class-wc-gzd-revocation.php:38
910
  #@ woocommerce-germanized
911
  msgctxt "revocation-form"
912
  msgid "Title"
913
  msgstr "Anrede"
914
 
915
+ #: includes/class-wc-gzd-revocation.php:41
916
  #@ woocommerce-germanized
917
  msgctxt "revocation-form"
918
  msgid "Sir"
919
  msgstr "Herr"
920
 
921
+ #: includes/class-wc-gzd-revocation.php:42
922
  #@ woocommerce-germanized
923
  msgctxt "revocation-form"
924
  msgid "Madam"
925
  msgstr "Frau"
926
 
927
+ #: includes/class-wc-gzd-revocation.php:47
928
  #@ woocommerce-germanized
929
  msgctxt "revocation-form"
930
  msgid "First Name"
931
  msgstr "Vorname"
932
 
933
+ #: includes/class-wc-gzd-revocation.php:52
934
  #@ woocommerce-germanized
935
  msgctxt "revocation-form"
936
  msgid "Last Name"
937
  msgstr "Nachname"
938
 
939
+ #: includes/class-wc-gzd-revocation.php:57
940
  #@ woocommerce-germanized
941
  msgctxt "revocation-form"
942
  msgid "Street"
943
  msgstr "Straße"
944
 
945
+ #: includes/class-wc-gzd-revocation.php:62
946
  #@ woocommerce-germanized
947
  msgctxt "revocation-form"
948
  msgid "Postal Code"
949
+ msgstr "Postleitzahl"
950
 
951
+ #: includes/class-wc-gzd-revocation.php:67
952
  #@ woocommerce-germanized
953
  msgctxt "revocation-form"
954
  msgid "City"
955
  msgstr "Stadt"
956
 
957
+ #: includes/class-wc-gzd-revocation.php:72
958
  #@ woocommerce-germanized
959
  msgctxt "revocation-form"
960
  msgid "Country"
961
  msgstr "Land"
962
 
963
+ #: includes/class-wc-gzd-revocation.php:78
964
  #@ woocommerce-germanized
965
  msgctxt "revocation-form"
966
  msgid "Mail"
1008
  msgid "Financing"
1009
  msgstr "Finanzierung"
1010
 
1011
+ #: includes/class-wc-gzd-trusted-shops.php:230
1012
  #, php-format
1013
  #@ woocommerce-germanized
1014
  msgctxt "trusted-shops"
1015
  msgid "Rated %s out of %s"
1016
  msgstr "Bewertet mit %s von %s"
1017
 
1018
+ #: includes/class-wc-gzd-trusted-shops.php:232
1019
  #, php-format
1020
  #@ woocommerce-germanized
1021
  msgctxt "trusted-shops"
1022
  msgid "out of %s"
1023
  msgstr "von %s"
1024
 
1025
+ #: includes/class-wc-gzd-trusted-shops.php:444
1026
  #@ woocommerce-germanized
1027
  msgctxt "trusted-shops"
1028
  msgid "Trusted Shops Integration"
1029
  msgstr "Trusted Shops Integration"
1030
 
1031
+ #: includes/class-wc-gzd-trusted-shops.php:541
1032
  #, php-format
1033
  #@ woocommerce-germanized
1034
  msgctxt "trusted-shops"
1035
  msgid "Choose a Trusted Shops Payment Gateway linked to WooCommerce Payment Gateway %s"
1036
+ msgstr "Wählen Sie für die Zahlungsart %s eine von Trusted Shops vorgegebene Zahlungsarten aus."
1037
 
1038
  #: includes/emails/class-wc-gzd-email-customer-ekomi.php:25
1039
  #@ woocommerce-germanized
1069
  msgid "Your Revocation"
1070
  msgstr "Ihr Widerruf"
1071
 
1072
+ #: includes/class-wc-gzd-payment-gateways.php:57
1073
  #, php-format
1074
  #@ woocommerce-germanized
1075
  msgid "plus %s payment charge"
1076
  msgstr "zzgl. %s Zahlungsgebühr"
1077
 
1078
+ #: includes/class-wc-gzd-payment-gateways.php:39
1079
  #, php-format
1080
  #@ woocommerce-germanized
1081
  msgid "Plus %s payment charge."
1082
  msgstr "Zzgl. %s Zahlungsgebühr."
1083
 
1084
+ #: includes/class-wc-gzd-payment-gateways.php:81
1085
  #@ woocommerce-germanized
1086
  msgid "Fee"
1087
  msgstr "Zahlungsgebühr"
1088
 
1089
+ #: includes/class-wc-gzd-payment-gateways.php:83
1090
  #@ woocommerce-germanized
1091
  msgid "This fee is being added if customer selects payment method within checkout."
1092
  msgstr "Diese Gebühr wird während der Bestellung hinzugefügt, falls der Kunde diese Zahlungsart aktiviert."
1093
 
1094
+ #: includes/class-wc-gzd-payment-gateways.php:88
1095
  #@ woocommerce-germanized
1096
  msgid "Fee is taxable?"
1097
  msgstr "Mwst. berechnen?"
1098
 
1099
+ #: includes/class-wc-gzd-payment-gateways.php:121
1100
  #@ woocommerce-germanized
1101
  msgid "Payment charge"
1102
  msgstr "Zahlungsgebühr"
1103
 
1104
+ #: includes/abstracts/abstract-wc-gzd-product.php:127
1105
+ #: includes/wc-gzd-cart-functions.php:159
1106
+ #: woocommerce-germanized.php:831
1107
  #, php-format
1108
  #@ woocommerce-germanized
1109
  msgid "incl. %s%% VAT"
1110
  msgstr "inkl. %s%% MwSt."
1111
 
1112
+ #: includes/wc-gzd-template-functions.php:147
1113
+ #: templates/checkout/edit-data-notice.php:16
1114
  #@ woocommerce-germanized
1115
  msgid "Edit Order"
1116
  msgstr "Bestellung bearbeiten"
1117
 
1118
+ #: includes/wc-gzd-template-functions.php:158
1119
  #@ woocommerce-germanized
1120
  msgid "Choose a Payment Gateway"
1121
+ msgstr "Zahlungsart auswählen"
1122
 
1123
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:670
1124
+ #: includes/wc-gzd-cart-functions.php:194
1125
  #@ woocommerce-germanized
1126
  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."
1127
  msgstr "Ja, ich möchte sofort Zugang zu dem digitalen Inhalt und weiß, dass mein Widerrufsrecht mit dem Zugang erlischt."
1128
 
1129
+ #: includes/wc-gzd-template-functions.php:216
1130
  #@ woocommerce-germanized
1131
  msgid "To get immediate access to digital content you have to agree to the losal of your right to cancel."
1132
  msgstr "Um direkten Zugang zu den digitalen Inhalte zu erhalten, müssen Sie auf das Widerrufsrecht verzichten."
1146
  msgid "Trusted Shops Reviews"
1147
  msgstr "Trusted Shops Bewertung"
1148
 
1149
+ #: templates/checkout/review-order-2-2.php:103
 
1150
  #@ woocommerce
1151
  msgid "Cart Subtotal"
1152
  msgstr "Zwischensumme"
1153
 
1154
+ #: templates/checkout/review-order-2-2.php:157
 
1155
  #@ woocommerce
1156
  msgid "Order Total"
1157
  msgstr "Gesamtsumme"
1158
 
1159
  #: templates/checkout/form-pay-2-2.php:57
 
1160
  #: templates/checkout/review-order-2-2.php:70
1161
+ #: templates/checkout/review-order-fallback.php:17
1162
  #@ woocommerce
1163
  msgid "Product"
1164
  msgstr "Produkt"
1173
  msgid "Sorry, it seems that there are no available payment methods for your state. Please contact us if you require assistance or wish to make alternate arrangements."
1174
  msgstr "Es tut uns Leid! Leider gibt es für Sie aktuell keine passende Zahlungsmethode. Bitte nehmen Sie mit uns Kontakt auf, damit wir Ihnen eine individuelle Lösung anbieten können."
1175
 
 
1176
  #: templates/checkout/form-pay-2-2.php:52
 
1177
  #: templates/checkout/review-order-2-2.php:63
1178
  #@ woocommerce
1179
  msgid "Your order"
1180
  msgstr "Ihre Bestellung"
1181
 
1182
  #: templates/checkout/order-submit.php:17
1183
+ #: templates/checkout/review-order-2-2.php:168
1184
  #@ woocommerce
1185
  msgid "Since your browser does not support JavaScript, or it is disabled, please ensure you click the <em>Update Totals</em> button before placing your order. You may be charged more than the amount stated above if you fail to do so."
1186
  msgstr "Da Ihr Browser kein JavaScript erlaubt, denken Sie bitte daran, auf \"Gesamtsumme aktualisieren\" zu klicken, bevor Sie den Auftrag absenden. "
1187
 
1188
  #: templates/checkout/order-submit.php:17
1189
+ #: templates/checkout/review-order-2-2.php:168
1190
  #@ woocommerce
1191
  msgid "Update totals"
1192
  msgstr "Gesamtsumme aktualisieren"
1193
 
1194
  #: templates/checkout/order-submit.php:28
1195
+ #: templates/checkout/review-order-2-2.php:184
1196
  #, php-format
1197
  #@ woocommerce
1198
  msgid "I&rsquo;ve read and accept the <a href=\"%s\" target=\"_blank\">terms &amp; conditions</a>"
1199
  msgstr "Ich habe die <a href=\"%s\" target=\"_blank\">Allgemeinen Geschäftsbedingungen</a> gelesen und akzeptiert."
1200
 
1201
+ #: includes/wc-gzd-template-functions.php:363
1202
  #: templates/checkout/order-submit.php:24
1203
+ #: templates/checkout/review-order-2-2.php:175
1204
  #@ woocommerce
1205
  msgid "Place order"
1206
  msgstr "Jetzt kaufen"
1231
  msgid "By sending you this email we confirm your Revocation. Please review your data."
1232
  msgstr "Mit der Zustellung dieser E-Mail bestätigen wir Ihren Widerruf. Bitte prüfen Sie Ihre Daten."
1233
 
1234
+ #: templates/emails/email-order-items-2-2.php:25
1235
  #@ woocommerce
1236
  msgid "Product Image"
1237
  msgstr "Produktbild"
1238
 
1239
+ #: templates/emails/email-order-items-2-2.php:46
1240
  #, php-format
1241
  #@ woocommerce
1242
  msgid "Download %d"
1243
  msgstr "Download %d"
1244
 
1245
+ #: templates/emails/email-order-items-2-2.php:48
1246
  #@ woocommerce
1247
  msgid "Download"
1248
  msgstr "Download"
1263
  msgstr "Alle Preise exkl. der gesetzlichen MwSt."
1264
 
1265
  #: templates/footer/vat-info.php:15
 
1266
  #@ woocommerce-germanized
1267
  msgid "Because of the small business owner state according to &#167;19 UStG the seller charge no sales tax, and therefore do not show it."
1268
  msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach §19 (1) UStG."
1285
  msgid "VAT free based on &#167;19 UStG"
1286
  msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach §19 (1) UStG."
1287
 
1288
+ #: woocommerce-germanized.php:580
1289
  #@ woocommerce
1290
  msgid "Settings"
1291
  msgstr "Einstellungen"
1292
 
 
 
 
 
 
1293
  #. translators: plugin header field 'Name'
1294
  #: woocommerce-germanized.php:0
1295
  #@ woocommerce-germanized
1296
  msgid "WooCommerce Germanized"
1297
  msgstr "WooCommerce Germanized"
1298
 
 
 
 
 
 
 
1299
  #. translators: plugin header field 'Description'
1300
  #: woocommerce-germanized.php:0
1301
  #@ woocommerce-germanized
1308
  msgid "Vendidero"
1309
  msgstr "Vendidero"
1310
 
 
 
 
 
 
 
1311
  #: templates/checkout/form-pay-2-2.php:58
 
1312
  #@ woocommerce
1313
  msgid "Qty"
1314
  msgstr ""
1315
 
1316
  #: templates/checkout/form-pay-2-2.php:59
 
1317
  #@ woocommerce
1318
  msgid "Totals"
1319
  msgstr ""
1320
 
1321
  #: templates/checkout/form-pay-2-2.php:19
 
1322
  #@ woocommerce
1323
  msgid "Payment"
1324
  msgstr ""
1325
 
1326
  #: templates/checkout/form-pay-2-2.php:44
 
1327
  #@ woocommerce
1328
  msgid "Sorry, it seems that there are no available payment methods for your location. Please contact us if you require assistance or wish to make alternate arrangements."
1329
  msgstr ""
1330
 
1331
  #: templates/checkout/form-pay-2-2.php:93
 
1332
  #@ woocommerce
1333
  msgid "Pay for order"
1334
  msgstr ""
1335
 
1336
+ #: includes/class-wc-gzd-trusted-shops.php:229
1337
  #, php-format
1338
  #@ woocommerce-germanized
1339
  msgctxt "trusted-shops"
1340
  msgid "%s ratings"
1341
  msgstr "Bewertungen von %s"
1342
 
1343
+ #: includes/class-wc-gzd-trusted-shops.php:251
1344
  #@ woocommerce-germanized
1345
  msgctxt "trusted-shops"
1346
  msgid "Show customer reviews"
1347
  msgstr "Kundenmeinungen ansehen"
1348
 
1349
+ #: includes/class-wc-gzd-trusted-shops.php:298
1350
  #@ woocommerce-germanized
1351
  msgctxt "trusted-shops"
1352
  msgid "Trusted Shops Customer Reviews"
1353
  msgstr "Trusted Shops Kundenbewertungen"
1354
 
1355
+ #: includes/class-wc-gzd-trusted-shops.php:447
1356
  #@ woocommerce-germanized
1357
  msgctxt "trusted-shops"
1358
  msgid "TS-ID"
1359
  msgstr "TS-ID"
1360
 
1361
+ #: includes/class-wc-gzd-trusted-shops.php:448
1362
  #@ woocommerce-germanized
1363
  msgctxt "trusted-shops"
1364
  msgid "Insert your Trusted Shops ID here."
1365
  msgstr "Füge hier deine Trusted Shops ID ein."
1366
 
1367
+ #: includes/class-wc-gzd-trusted-shops.php:457
1368
  #@ woocommerce-germanized
1369
  msgctxt "trusted-shops"
1370
  msgid "Configure the Trustbadge for your shop"
1371
  msgstr "Konfiguriere dein Trustbadge"
1372
 
1373
+ #: includes/class-wc-gzd-trusted-shops.php:457
1374
  #, php-format
1375
  #@ woocommerce-germanized
1376
  msgctxt "trusted-shops"
1377
  msgid "You'll find a step-by-step instruction for your shopsoftware in our integration center. <a href=\"%s\" target=\"_blank\">Click here</a>"
1378
  msgstr "In unserem Integration Center findest du eine Schritt-für-Schritt Anleitung. Klicke <a href=\"%s\" target=\"_blank\">hier</a>."
1379
 
1380
+ #: includes/class-wc-gzd-trusted-shops.php:460
1381
  #@ woocommerce-germanized
1382
  msgctxt "trusted-shops"
1383
  msgid "Trustbadge code"
1384
  msgstr "Trustbadge Code"
1385
 
1386
+ #: includes/class-wc-gzd-trusted-shops.php:463
1387
  #@ woocommerce-germanized
1388
  msgctxt "trusted-shops"
1389
  msgid "Fill in your trustbadge code here"
1390
  msgstr "Trustbadge Code hier einfügen"
1391
 
1392
+ #: includes/class-wc-gzd-trusted-shops.php:463
1393
  #@ woocommerce-germanized
1394
  msgctxt "trusted-shops"
1395
  msgid "If no further steps were required in the integration center, the Trustbadge is already displayed in your shop."
1396
  msgstr "Sofern keine weiteren Installationsschritte im Integration Center beschrieben wurden, wird das Trustbadge jetzt im Frontend deines Shops angezeigt."
1397
 
1398
+ #: includes/class-wc-gzd-trusted-shops.php:470
1399
  #@ woocommerce-germanized
1400
  msgctxt "trusted-shops"
1401
  msgid "Configure Customer Reviews"
1402
  msgstr "Kundenbewertungen konfigurieren"
1403
 
1404
+ #: includes/class-wc-gzd-trusted-shops.php:473
1405
  #@ woocommerce-germanized
1406
  msgctxt "trusted-shops"
1407
  msgid "Enable Review Widget"
1408
  msgstr "Kundenbewertungswidget aktiveren"
1409
 
1410
+ #: includes/class-wc-gzd-trusted-shops.php:474
1411
  #, php-format
1412
  #@ woocommerce-germanized
1413
  msgctxt "trusted-shops"
1414
  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>."
1415
  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."
1416
 
1417
+ #: includes/class-wc-gzd-trusted-shops.php:482
1418
  #@ woocommerce-germanized
1419
  msgctxt "trusted-shops"
1420
  msgid "Enable Rich Snippets for Google"
1421
  msgstr "Rich Snippets Anzeige in Google aktivieren"
1422
 
1423
+ #: includes/class-wc-gzd-trusted-shops.php:483
1424
  #@ woocommerce-germanized
1425
  msgctxt "trusted-shops"
1426
  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."
1427
  msgstr "Diese Option bewirkt, dass deine über Trusted Shops empfangenen Bewertungen als Rich Snippets im Shop als Widget verfügbar sind. "
1428
 
1429
+ #: includes/class-wc-gzd-trusted-shops.php:511
1430
  #@ woocommerce-germanized
1431
  msgctxt "trusted-shops"
1432
  msgid "Assign payment methods"
1433
+ msgstr "Zahlungsarten zuweisen"
1434
 
1435
+ #: includes/class-wc-gzd-trusted-shops.php:560
1436
  #@ woocommerce-germanized
1437
  msgctxt "trusted-shops"
1438
  msgid "About Trusted Shops"
1439
  msgstr "Über Trusted Shops"
1440
 
1441
+ #: includes/wc-gzd-template-functions.php:116
1442
  #@ woocommerce
1443
  msgid "Proceed to Checkout"
1444
  msgstr ""
1456
  msgid "Trusted Shops Rich Snippets"
1457
  msgstr "Trusted Shops Rich Snippets"
1458
 
1459
+ #: includes/class-wc-gzd-trusted-shops.php:237
1460
  #, php-format
1461
  #@ woocommerce-germanized
1462
  msgctxt "trusted-shops"
1463
  msgid "%s of %s based on %s <a href=\"%s\" target=\"_blank\">ratings</a>."
1464
  msgstr "%s von %s basierend auf %s <a href=\"%s\" target=\"_blank\">Bewertungen</a>."
1465
 
1466
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:621
1467
  #@ woocommerce-germanized
1468
  msgid "Checkout Table Color"
1469
  msgstr "Hintergrundfarbe der Tabelle"
1470
 
1471
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:623
1472
  #@ woocommerce-germanized
1473
  msgid "Choose the color of your checkout product table. This table should be highlighted within your checkout page."
1474
  msgstr "Wähle die Farbe des Hintergrundes deiner Produkt-Tabelle im Checkout. Die Tabelle sollte sich farblich vom Rest des Inhalts abheben."
1494
  #: includes/admin/views/html-notice-theme-not-ready.php:14
1495
  #@ woocommerce-germanized
1496
  msgid "Theme not yet ready"
1497
+ msgstr "Theme ist noch nicht für WooCommerce Germanized optimiert"
1498
 
1499
  #: includes/admin/views/html-notice-theme-not-ready.php:15
1500
  #, php-format
1502
  msgid "It seems like your theme is not yet ready for WooCommerce Germanized. Please check your theme's styles. Some things might look weird - WooCommerce Germanized can only offer basic styles. See <a href=\"%s\" target=\"_blank\">making your theme compatible</a> or check out our Theme <a href=\"%s\" target=\"_blank\">VendiPro</a> for 100&#37; compatibility."
1503
  msgstr "Wir haben festgestellt, dass dein Theme scheinbar noch nicht für WooCommerce Germanized optimiert ist. Bitte überprüfe die Style-Angaben deines Themes bzw. das Aussehen deines Shops. Manche Elemente werden möglicherweise falsch dargestellt - WooCommerce Germanized kann nur grundlegende Style-Angaben machen. Lies dir dazu <a href=\"%s\" target=\"_blank\">wie mache ich mein Theme kompatibel</a> durch oder nutze das von uns entwickelte Theme <a href=\"%s\" target=\"_blank\">VendiPro</a> für 100&#37; Kompatibilität."
1504
 
1505
+ #: includes/class-wc-gzd-payment-gateways.php:90
1506
  #@ woocommerce-germanized
1507
  msgid "Check if fee is taxable."
1508
  msgstr "MwSt.-Berechnung für Gebühr aktivieren."
1509
 
1510
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:667
1511
  #@ woocommerce-germanized
1512
  msgid "Legal Digital Text"
1513
  msgstr "Hinweis Digital"
1514
 
1515
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:668
1516
  #@ woocommerce-germanized
1517
  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."
1518
  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"
1519
 
1520
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:446
1521
  #@ woocommerce-germanized
1522
  msgid "Link to Details"
1523
  msgstr "Verlinkung zu Produktdetails"
1524
 
1525
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:447
1526
  #@ woocommerce-germanized
1527
  msgid "Want to link to product details page instead of add to cart within listings?"
1528
  msgstr "Anstatt des zum Warenkorb Buttons einen Button zur Produktdetail-Seite einfügen?"
1529
 
1530
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:451
1531
  #@ woocommerce-germanized
1532
  msgid "Decide whether you like to link to your product's details page instead of displaying an add to cart button within product listings."
1533
  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."
1534
 
1535
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:455
1536
  #@ woocommerce-germanized
1537
  msgid "Product Details Text"
1538
  msgstr "Produktdetails Text"
1539
 
1540
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:457
1541
  #@ woocommerce-germanized
1542
  msgid "Details"
1543
  msgstr "Details"
1544
 
1545
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:459
1546
  #@ woocommerce-germanized
1547
  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."
1548
  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."
1549
 
1550
+ #: includes/class-wc-gzd-trusted-shops.php:491
1551
  #@ woocommerce-germanized
1552
  msgctxt "trusted-shops"
1553
  msgid "Enable Review Reminder"
1554
  msgstr "Bewertungserinnerung aktivieren"
1555
 
1556
+ #: includes/class-wc-gzd-trusted-shops.php:492
1557
  #@ woocommerce-germanized
1558
  msgctxt "trusted-shops"
1559
  msgid "This option will enable a one-time email review reminder being sent to your customer."
1560
  msgstr "Diese Option sendet eine einmalige E-Mail Erinnerung bzgl. der Abgabe einer Bewertung über Trusted Shops an den Kunden."
1561
 
1562
+ #: includes/class-wc-gzd-trusted-shops.php:500
1563
  #@ woocommerce-germanized
1564
  msgctxt "trusted-shops"
1565
  msgid "Days until reminder"
1566
  msgstr "Tage bis zur Erinnerung"
1567
 
1568
+ #: includes/class-wc-gzd-trusted-shops.php:501
1569
  #@ woocommerce-germanized
1570
  msgctxt "trusted-shops"
1571
  msgid "Decide how many days after an order the email review reminder will be sent."
1641
  msgid "Found Bugs?"
1642
  msgstr "Bugs oder Wünsche melden"
1643
 
1644
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:551
1645
  #@ woocommerce-germanized
1646
  msgid "Shipping Costs for Virtual"
1647
  msgstr "Versandkosten virtuell"
1648
 
1649
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:552
1650
  #@ woocommerce-germanized
1651
  msgid "Select this option if you want to display shipping costs notice for virtual products."
1652
  msgstr "Versandkosten-Hinweis auch für virtuelle Produkte aktivieren?"
1653
 
1654
+ #: includes/abstracts/abstract-wc-gzd-product.php:126
1655
+ #: includes/wc-gzd-cart-functions.php:159
1656
+ #: woocommerce-germanized.php:831
1657
  #@ woocommerce-germanized
1658
  msgid "incl. VAT"
1659
  msgstr "inkl. MwSt."
1660
 
1661
+ #: includes/abstracts/abstract-wc-gzd-product.php:126
1662
  #@ woocommerce-germanized
1663
  msgid "excl. VAT"
1664
  msgstr "exkl. MwSt."
1665
 
1666
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:387
1667
  #@ woocommerce-germanized
1668
  msgid "Virtual VAT"
1669
  msgstr "USt. Änderung 2015"
1670
 
1671
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:390
1672
  #@ woocommerce-germanized
1673
  msgid "Enable Virtual VAT"
1674
  msgstr "USt. Anpassung aktivieren"
1675
 
1676
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:391
1677
  #@ woocommerce-germanized
1678
  msgid "Enable if you want to charge your customer's countries' VAT for virtual products."
1679
  msgstr "Aktiviere diese Option um für virtuelle Produkte den USt.-Satz des Dienstleistungsempfängers zu berechnen."
1680
 
1681
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:395
1682
  #, php-format
1683
  #@ woocommerce-germanized
1684
  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>."
1711
  msgid "Update WooCommerce Germanized"
1712
  msgstr "WooCommerce Germanized aktualisieren"
1713
 
1714
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:318
1715
  #@ woocommerce-germanized
1716
  msgid "Unit Price Text"
1717
  msgstr "Einheitspreis Text"
1718
 
1719
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:319
1720
  #@ woocommerce-germanized
1721
  msgid "This text will be used to display the unit price. Use {price} to insert the price."
1722
  msgstr "Dieser Text wird verwendet um den Einheitspreis darzustellen. Nutze {price} als Platzhalter für den eigentlichen Preis."
1723
 
1724
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:324
1725
  #@ woocommerce-germanized
1726
  msgid "{price}"
1727
  msgstr "{price}"
1728
 
1729
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:788
1730
  #@ woocommerce-germanized
1731
  msgid "Sorry, but the new Virtual VAT rules cannot be applied to small business."
1732
  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."
1733
 
1734
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:132
1735
  #@ woocommerce-germanized
1736
  msgid "Add title field"
1737
  msgstr "Anrede im Checkout"
1738
 
1739
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:133
1740
  #@ woocommerce-germanized
1741
  msgid "Add a title field to the address within checkout?"
1742
  msgstr "Fügt ein Feld \"Anrede\" im Checkout hinzu."
1743
 
1744
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:658
1745
  #@ woocommerce-germanized
1746
  msgid "Show digital notice"
1747
  msgstr "Checkbox digitale Produkte"
1748
 
1749
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:659
1750
  #@ woocommerce-germanized
1751
  msgid "Show checkbox for digital products."
1752
+ msgstr "Checkbox bei digitalen Produkten anzeigen."
1753
 
1754
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:660
1755
  #@ woocommerce-germanized
1756
  msgid "Disable this option if you want your customers to obtain their right of recission even if digital products are being bought."
1757
  msgstr "Diese Option setzt im Checkout eine Checkbox falls sich im Warenkorb digitale Produkte befinden. Hier können Kunden darauf aufmerksam gemacht werden, dass im Falle von digitalen Produkten das Widerrufsrecht erlischt."
1758
 
1759
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:585
1760
  #@ woocommerce-germanized
1761
  msgid "Show Thumbnails"
1762
  msgstr "Thumbnails anzeigen"
1763
 
1764
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:586
1765
  #@ woocommerce-germanized
1766
  msgid "Show product thumbnails on checkout page?"
1767
  msgstr "Produktbilder im Checkout darstellen?"
1768
 
1769
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:590
1770
  #@ woocommerce-germanized
1771
  msgid "Uncheck if you don't want to show your product thumbnails within checkout table."
1772
  msgstr "Deaktiviere diese Option, wenn du keine Produkbilder im Checkout angezeigt bekommen möchtest."
1773
 
1774
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:594
1775
  #@ woocommerce-germanized
1776
  msgid "Hide Shipping Select"
1777
+ msgstr "Versandarten Auswahl"
1778
 
1779
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:595
1780
  #@ woocommerce-germanized
1781
  msgid "Hide shipping rate selection from checkout?"
1782
+ msgstr "Die Auswahl von Versandarten im Checkout deaktivieren?"
1783
 
1784
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:599
1785
  #@ woocommerce-germanized
1786
  msgid "This option will hide shipping rate selection from checkout. By then customers will only be able to change their shipping rate on cart page."
1787
+ msgstr "Diese Option deaktiviert die Darstellung der Versandarten Auswahl im Checkout. Kunden können von nun an nur noch über den Warenkorb die Versandmethode ändern."
1788
 
1789
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:576
1790
  #@ woocommerce-germanized
1791
  msgid "Hide taxes estimated"
1792
  msgstr "Hinweis \"Steuern geschätzt\""
1793
 
1794
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:577
1795
  #@ woocommerce-germanized
1796
  msgid "Do you want to hide the \"taxes and shipping estimated\" text from your cart?"
1797
  msgstr "Den Hinweis \"Versandkosten und Steuern werden geschätzt\" entfernen?"
1798
 
1799
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:581
1800
  #@ woocommerce-germanized
1801
  msgid "By default WooCommerce adds a \"taxes and shipping estimated\" text to your cart. This might puzzle your customers and may not meet german law."
1802
  msgstr "Der Hinweistext im Warenkorb zur Schätzung von Steuern und Versandkosten kann für Verwirrung beim Kunden sorgen und scheint nicht für den deutschen Markt geeignet."
1803
 
1804
+ #: includes/abstracts/abstract-wc-gzd-product.php:127
1805
  #, php-format
1806
  #@ woocommerce-germanized
1807
  msgid "excl. %s%% VAT"
1808
  msgstr "exkl. %s%% MwSt."
1809
 
1810
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:603
1811
  #@ woocommerce-germanized
1812
  msgid "Show back to cart button"
1813
  msgstr "Bestellung bearbeiten"
1814
 
1815
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:604
1816
  #@ woocommerce-germanized
1817
  msgid "Show back to cart button within your checkout table?"
1818
  msgstr "Einen \"Bestellung bearbeiten\" Button in der Bestellübersicht anzeigen?"
1819
 
1820
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:608
1821
  #@ woocommerce-germanized
1822
  msgid "This button may let your customer edit their order before submitting. Some people state that this button should be hidden to avoid legal problems."
1823
  msgstr "Dieser Button ermöglicht es deinen Kunden etwaige Falscheingaben (d.h. fälschlich ausgewählte Produkte) zu korrigieren und zurück zum Warenkorb zu gelangen. Je nach Darstellung in deinem Theme könnte es allerdings auch das Risiko für Abmahnungen erhöhen, da zwischen Pflichtangaben und Kaufen-Button keine weitere Informationen abgedruckt werden sollten."
1824
 
1825
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:251
1826
  #@ woocommerce-germanized
1827
  msgid "Shipping Costs Tax"
1828
  msgstr "Steuerberechnung"
1829
 
1830
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:252
1831
  #@ woocommerce-germanized
1832
  msgid "Enable better taxation for shpping costs?"
1833
  msgstr "Genauere Steuerberechnung für Versandkosten aktivieren?"
1834
 
1835
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:256
1836
  #, php-format
1837
  #@ woocommerce-germanized
1838
  msgid "By choosing this option shipping cost taxation will be calculated based on tax rates within cart. Imagine the following example. Further information can be found <a href=\"%s\" target=\"_blank\">here</a>. %s"
1839
  msgstr "Mit der Auswahl dieser Option werden die Steuern für Versandkosten basierend auf den Anteilen der Steuersätze der Artikel im Warenkorb berechnet. Weitere Informationen findest du <a href=\"%s\" target=\"_blank\">hier</a>. Falls du vorher mit Nettobeträgen gearbeitet hast, ändere die Versandkosten bitte in Bruttobeträge. Hier ein kleines Beispiel: %s"
1840
 
1841
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:260
1842
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:282
1843
  #@ woocommerce-germanized
1844
  msgid "Force Tax Calculation"
1845
  msgstr "Steuerberechnung erzwingen"
1846
 
1847
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:261
1848
  #@ woocommerce-germanized
1849
  msgid "Force shipping costs tax calculation for every method?"
1850
+ msgstr "Erzwinge die Besteuerung für Versandkosten für jede Versandart?"
1851
 
1852
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:265
1853
  #@ woocommerce-germanized
1854
  msgid "This option will overwrite settings for each individual shipping method to force tax calculation (instead of only calculating tax for those methods which are taxeable)."
1855
+ msgstr "Diese Option überschreibt alle abweichenden Einstellungen verschiedener Versandarten und erzwingt die Steuerberechnung."
1856
 
1857
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:270
1858
  #@ woocommerce-germanized
1859
  msgid "Fees"
1860
  msgstr "Gebühren"
1861
 
1862
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:273
1863
  #@ woocommerce-germanized
1864
  msgid "Fee Tax"
1865
  msgstr "Steuerberechnung"
1866
 
1867
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:274
1868
  #@ woocommerce-germanized
1869
  msgid "Enable better taxation for fees?"
1870
  msgstr "Genauere Steuerberechnung für Gebühren aktivieren?"
1871
 
1872
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:278
1873
  #@ woocommerce-germanized
1874
  msgid "By choosing this option fee taxation will be calculated based on tax rates within cart. See shipping costs taxation for more information."
1875
  msgstr "Mit Hilfe dieser Option werden die Steuern für Gebühren basierend auf den Steuersätzen der Artikel im Warenkorb berechnet (siehe Steuern für Versandkosten für weitere Informationen). Bitte passe auch hier etwaige Nettobeträge in Bruttobeträge an."
1876
 
1877
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:283
1878
  #@ woocommerce-germanized
1879
  msgid "Force fee tax calculation for every fee?"
1880
  msgstr "Berechnung der Steuern für Gebühren erzwingen?"
1881
 
1882
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:287
1883
  #@ woocommerce-germanized
1884
  msgid "This option will overwrite settings for each individual fee to force tax calculation (instead of only calculating tax for those fees which are taxeable)."
1885
  msgstr "Diese Option überschreibt die Einstellungen aller Gebühren und erzwingt die Steuerberechnung."
1886
 
 
 
 
 
 
1887
  #: includes/admin/views/html-notice-theme-incompatibility.php:15
1888
  #, php-format
1889
  #@ woocommerce-germanized
1891
  msgstr "Es sieht so aus als wenn dein aktuelles Theme versucht rechtlich relevante Templates (kritische Templates: %s) zu überschreiben. Bitte überprüfe deinen Shop und insbesondere den Bezahlvorgang. WooCommerce Germanized musste das Überschreiben dieser Templates verhindern um für Rechtssicherheit sorgen zu können. Bitte lies dazu <a href=\"%s\" target=\"_blank\">mein Theme kompatibel machen</a> oder schau dir das von uns entwickelte Theme <a href=\"%s\" target=\"_blank\">VendiPro</a> für 100&#37; Kompatibilität an."
1892
 
1893
  #: templates/checkout/review-order-2-2.php:71
1894
+ #: templates/checkout/review-order-fallback.php:18
1895
+ #: templates/checkout/review-order-fallback.php:97
1896
  #@ woocommerce
1897
  msgid "Total"
1898
  msgstr ""
1907
  msgid "Yes, customer opted in"
1908
  msgstr "Ja, Kunde wurde per Double Opt-In bestätigt."
1909
 
1910
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:292
1911
  #@ woocommerce-germanized
1912
  msgid "Customers"
1913
  msgstr "Kunden"
1914
 
1915
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:295
1916
  #@ woocommerce-germanized
1917
  msgid "Customer Double Opt In"
1918
  msgstr "Double Opt-In"
1919
 
1920
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:296
1921
  #@ woocommerce-germanized
1922
  msgid "Enable customer double opt in on registration?"
1923
  msgstr "Double Opt-In Verfahren für Kundenkonten aktivieren?"
1924
 
1925
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:297
1926
  #, php-format
1927
  #@ woocommerce-germanized
1928
  msgid "If customer chooses to create a customer account an email with an activation link will be sent by mail. Customer account will be marked as activated if user clicks on the link within the email. More information on this topic can be found <a href=\"%s\" target=\"_blank\">here</a>."
1929
+ msgstr "Wenn ein Kunde sich dazu entscheidet ein Benutzerkonto zu erstellen, erhält dieser eine E-Mail mit einem Bestätigungslink. Insofern der Kunde diesen Bestätigungslink anklickt, wird das Konto als bestätigt markiert. Dieses Verfahren ist laut Amtsgericht Berlin Pankow/Weißensee notwendig. Mehr Informationen findest du <a href=\"%s\" target=\"_blank\">hier</a>."
1930
 
1931
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:304
1932
  #@ woocommerce-germanized
1933
  msgid "Delete Unactivated After"
1934
  msgstr "Unaktivierte löschen nach"
1935
 
1936
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:305
1937
  #@ woocommerce-germanized
1938
  msgid "This will make sure unactivated customer accounts will be deleted after X days. Set to 0 if you don't want to automatically delete unactivated customers."
1939
  msgstr "Diese Option sorgt dafür, dass unaktivierte Kundenkonten nach X Tagen automatisch gelöscht werden. Falls du die Löschung verhindern möchtest, setze den Wert auf 0."
1987
  msgid "If you cannot follow the link above please copy this url and paste it to your browser bar: %s"
1988
  msgstr "Falls Sie dem Link nicht folgen können, kopieren Sie bitte folgende URL in die Adresszeile Ihres Browsers: %s"
1989
 
1990
+ #: woocommerce-germanized.php:741
 
 
 
 
 
 
1991
  #@ woocommerce-germanized
1992
  msgid "Thank you. You have successfully activated your account."
1993
  msgstr "Vielen Dank. Ihr Benutzerkonto wurde erfolgreich aktiviert."
1994
 
1995
+ #: woocommerce-germanized.php:745
1996
  #@ woocommerce-germanized
1997
  msgid "Sorry, but this activation code cannot be found."
1998
  msgstr "Sorry, dieser Aktivierungscode ist uns leider nicht bekannt."
1999
 
2000
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:306
2001
  #@ woocommerce-germanized
2002
  msgid "days"
2003
  msgstr "Tagen"
2004
 
2005
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:60
2006
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:44
2007
+ #@ woocommerce-germanized
2008
+ msgid "Search for a delivery time&hellip;"
2009
+ msgstr "Lieferzeit suchen&hellip;"
2010
+
2011
+ #: includes/class-wc-gzd-ajax.php:58
2012
+ #, php-format
2013
+ #@ woocommerce-germanized
2014
+ msgid "%s [new]"
2015
+ msgstr "%s [neu]"
2016
+
2017
+ #. translators: plugin header field 'PluginURI'
2018
+ #: woocommerce-germanized.php:0
2019
+ #@ woocommerce-germanized
2020
+ msgid "https://www.vendidero.de/woocommerce-germanized"
2021
+ msgstr "https://www.vendidero.de/woocommerce-germanized"
2022
+
2023
+ #. translators: plugin header field 'AuthorURI'
2024
+ #: woocommerce-germanized.php:0
2025
+ #@ woocommerce-germanized
2026
+ msgid "https://vendidero.de"
2027
+ msgstr "https://vendidero.de"
2028
+
2029
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:565
2030
+ #@ woocommerce-germanized
2031
+ msgid "Fallback Mode"
2032
+ msgstr "Fallback Modus"
2033
+
2034
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:566
2035
+ #@ woocommerce-germanized
2036
+ msgid "Enable to make sure default review-order.php is not being overriden by theme."
2037
+ msgstr "Dieser Modus unterdrückt das Überschreiben des review-order.php Templates."
2038
+
2039
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:570
2040
+ #@ woocommerce-germanized
2041
+ msgid "If you are facing problems within your checkout e.g. legally relevant data is not showing (terms, delivery time, unit price etc.) your theme seems to be incompatible (not using default WooCommerce hooks and filters). As a workaround you may use this fallback which ensures default review-order.php is used."
2042
+ msgstr "Falls du Probleme mit dem Checkout hast - es fehlen z.B. rechtlich relevante Dinge wie der AGB/Widerrufsbelehrung Hinweis, Lieferzeit, Einheitspreis etc. - dann scheint dein Theme inkompatibel zu sein (Aktiviere ein Default-WP-Theme um das zu testen). Als Workaround kannst du diesen Fallback-Modus nutzen, der dafür sorgt, dass die Datei review-order.php auf keinen Fall vom Theme überschrieben wird."
2043
+
2044
+ #: includes/class-wc-gzd-trusted-shops.php:411
2045
+ #@ woocommerce-germanized
2046
+ msgctxt "trusted-shops"
2047
+ msgid "Review Collector"
2048
+ msgstr "Review Collector"
2049
+
2050
+ #: includes/class-wc-gzd-trusted-shops.php:416
2051
+ #@ woocommerce-germanized
2052
+ msgctxt "trusted-shops"
2053
+ msgid "Export customer data"
2054
+ msgstr "Bestellungen exportieren"
2055
+
2056
+ #: includes/class-wc-gzd-trusted-shops.php:420
2057
+ #@ woocommerce-germanized
2058
+ msgctxt "trusted-shops"
2059
+ msgid "30 days"
2060
+ msgstr "30 Tage"
2061
+
2062
+ #: includes/class-wc-gzd-trusted-shops.php:421
2063
+ #@ woocommerce-germanized
2064
+ msgctxt "trusted-shops"
2065
+ msgid "60 days"
2066
+ msgstr "60 Tage"
2067
+
2068
+ #: includes/class-wc-gzd-trusted-shops.php:422
2069
+ #@ woocommerce-germanized
2070
+ msgctxt "trusted-shops"
2071
+ msgid "90 days"
2072
+ msgstr "90 Tage"
2073
+
2074
+ #: includes/class-wc-gzd-trusted-shops.php:424
2075
+ #@ woocommerce-germanized
2076
+ msgctxt "trusted-shops"
2077
+ msgid "Start export"
2078
+ msgstr "Export starten"
2079
+
2080
+ #: includes/class-wc-gzd-trusted-shops.php:425
2081
+ #, php-format
2082
+ #@ woocommerce-germanized
2083
+ msgctxt "trusted-shops"
2084
+ msgid "Export your customer data and ask consumers for a review with the Trusted Shops <a href=\"%s\" target=\"_blank\">Review Collector</a>."
2085
+ msgstr "Exportiere hier die Kundendaten für die Verwendung im Trusted Shops <a href=\"%s\" target=\"_blank\">Review Collector</a>."
2086
+
2087
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:39
2088
+ #, php-format
2089
+ #@ woocommerce-germanized
2090
+ msgid "Invoice Options %s"
2091
+ msgstr "Rechnungen %s"
2092
+
2093
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:40
2094
+ #, php-format
2095
+ #@ woocommerce-germanized
2096
+ msgid "Terms & Conditions generator %s"
2097
+ msgstr "AGB Generator %s"
2098
+
2099
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:41
2100
+ #, php-format
2101
+ #@ woocommerce-germanized
2102
+ msgid "Revocation generator %s"
2103
+ msgstr "Widerruf Generator %s"
2104
+
2105
+ #: includes/admin/views/html-settings-pro.php:23
2106
+ #@ woocommerce-germanized
2107
+ msgid "Get WooCommerce Germanized Pro to unlock"
2108
+ msgstr "Upgrade zur Pro Version um dieses Feature nutzen zu können"
2109
+
2110
+ #: includes/admin/views/html-settings-pro.php:24
2111
+ #@ woocommerce-germanized
2112
+ msgid "Enjoy even more professional features such as invoices, legal text generators, B2B VAT settings and premium support!"
2113
+ msgstr "Als Nutzer der Pro Version erhältst du viele produktive weiterführende Features wie z.B. PDF-Rechnungen, eine Schnittstelle zum Generator für Mustertexte, Überprüfung von USt.-IDs, die Möglichkeit Bestellungen vor Annahme des Vertrages zu prüfen und natürlich professionellen Support!"
2114
+
2115
+ #: includes/admin/views/html-settings-pro.php:25
2116
+ #@ woocommerce-germanized
2117
+ msgid "Upgrade now"
2118
+ msgstr "jetzt upgraden"
2119
+
2120
+ #: includes/class-wc-gzd-post-types.php:63
2121
+ #: includes/class-wc-gzd-post-types.php:65
2122
+ #@ woocommerce-germanized
2123
+ msgid "Units"
2124
+ msgstr "Einheiten"
2125
+
2126
+ #: includes/class-wc-gzd-post-types.php:67
2127
+ #@ woocommerce-germanized
2128
+ msgctxt "Admin menu name"
2129
+ msgid "Units"
2130
+ msgstr "Einheiten"
2131
+
2132
+ #: includes/class-wc-gzd-post-types.php:68
2133
+ #@ woocommerce-germanized
2134
+ msgid "Search Units"
2135
+ msgstr "Einheiten suchen"
2136
+
2137
+ #: includes/class-wc-gzd-post-types.php:69
2138
+ #@ woocommerce-germanized
2139
+ msgid "All Units"
2140
+ msgstr "Alle Einheiten"
2141
+
2142
+ #: includes/class-wc-gzd-post-types.php:70
2143
+ #@ woocommerce-germanized
2144
+ msgid "Edit Unit"
2145
+ msgstr "Einheit bearbeiten"
2146
+
2147
+ #: includes/class-wc-gzd-post-types.php:71
2148
+ #@ woocommerce-germanized
2149
+ msgid "Update Unit"
2150
+ msgstr "Einheit aktualisieren"
2151
+
2152
+ #: includes/class-wc-gzd-post-types.php:72
2153
+ #@ woocommerce-germanized
2154
+ msgid "Add New Unit"
2155
+ msgstr "Neue Einheit anlegen"
2156
+
2157
+ #: includes/class-wc-gzd-post-types.php:73
2158
+ #@ woocommerce-germanized
2159
+ msgid "New Unit Name"
2160
+ msgstr "Name der neuen Einheit"
2161
+
2162
+ #: templates/checkout/review-order-fallback.php:50
2163
+ #@ woocommerce
2164
+ msgid "Subtotal"
2165
+ msgstr ""
2166
+
2167
+ #. translators: plugin header field 'Version'
2168
+ #: woocommerce-germanized.php:0
2169
+ #@ woocommerce-germanized
2170
+ msgid "1.3.0"
2171
+ msgstr "1.3.0"
2172
+
2173
+ #: templates/global/small-business-info.php:15
2174
+ #@ woocommerce-germanized
2175
+ msgid "Because of the small business owner state according to &#167;19 UstG the seller does not levy nor state the German value added tax."
2176
+ msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach &#167;19 (1) UStG."
2177
+
2178
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:612
2179
+ #@ woocommerce-germanized
2180
+ msgid "Show edit data notice"
2181
+ msgstr "Bestellung prüfen Hinweis"
2182
+
2183
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:613
2184
+ #@ woocommerce-germanized
2185
+ msgid "Show a \"check-your-entries\" notice to the user?"
2186
+ msgstr "Einen \"Bestellung prüfen\" Hinweis anzeigen?"
2187
+
2188
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:617
2189
+ #@ woocommerce-germanized
2190
+ msgid "This notice will be added right before the order comments field."
2191
+ msgstr "Dieser Hinweis wird direkt oberhalb des Bestellhinweise-Feldes eingefügt."
2192
+
2193
+ #: templates/checkout/edit-data-notice.php:16
2194
+ #, php-format
2195
+ #@ woocommerce-germanized
2196
+ msgid "Please check all of your entries carefully. You may change your entries with the help of the button \"%s\"."
2197
+ msgstr "Bitte überprüfen Sie Ihre Eingaben. Sie können einzelne Angaben durch Klicken des Buttons „%s“ korrigieren."
2198
+
2199
+ #: templates/checkout/edit-data-notice.php:18
2200
+ #@ woocommerce-germanized
2201
+ msgid "Please check all of your entries carefully. You may change your entries with the help of the \"Back\" button in your browser"
2202
+ msgstr "Bitte überprüfen Sie Ihre Eingaben. Sie können diese durch Klicken des „Zurück“-Buttons Ihres Browsers korrigieren"
2203
+
2204
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:141
2205
+ #@ woocommerce-germanized
2206
+ msgid "Contract"
2207
+ msgstr "Kaufvertrag"
2208
+
2209
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:141
2210
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:400
2211
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:412
2212
+ #, php-format
2213
+ #@ woocommerce-germanized
2214
+ msgid "%sUpgrade to %spro%s%s to unlock this feature and get premium support."
2215
+ msgstr "%sUpgrade zur %spro%s Version%s um dieses Feature nutzen zu können und erhalte professionellen Support."
2216
+
2217
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:400
2218
+ #@ woocommerce-germanized
2219
+ msgctxt "invoices"
2220
+ msgid "Invoices"
2221
+ msgstr "Rechnungen"
2222
+
2223
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:412
2224
+ #@ woocommerce-germanized
2225
+ msgid "VAT"
2226
+ msgstr "Umsatzsteuer"
2227
+
includes/abstracts/abstract-wc-gzd-payment-gateway.php DELETED
@@ -1,90 +0,0 @@
1
- <?php
2
- /**
3
- * Adds payment method fee to WC_Payment_Gateway
4
- *
5
- * @class WC_GZD_Payment_Gateway
6
- * @version 1.0.0
7
- * @author Vendidero
8
- */
9
- class WC_GZD_Payment_Gateway {
10
-
11
- public $gateway;
12
- public $extra_fields = array();
13
-
14
- public function __construct( WC_Payment_Gateway $gateway ) {
15
- $this->gateway = $gateway;
16
- $this->init_form_fields();
17
- if ( $this->get_option( 'fee' ) ) {
18
- add_filter( 'woocommerce_gateway_title', array( $this, 'manipulate_title' ), 0, 2 );
19
- $this->description .= ' ' . sprintf( __( 'Plus %s payment charge.', 'woocommerce-germanized' ), wc_price( $this->get_option( 'fee' ) ) );
20
- }
21
- add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, array( $this->gateway, 'process_admin_options' ), PHP_INT_MAX );
22
- if ( ! isset( $this->gateway->force_order_button_text ) || ! $this->gateway->force_order_button_text )
23
- $this->gateway->order_button_text = __( get_option( 'woocommerce_gzd_order_submit_btn_text' ), 'woocommerce-germanized' );
24
- }
25
-
26
- public function __get( $key ) {
27
- return $this->gateway->$key;
28
- }
29
-
30
- public function __set( $key, $value ) {
31
- $this->gateway->$key = $value;
32
- }
33
-
34
- public function __call( $method, $arguments ) {
35
- if ( method_exists( $this->gateway, $method ) )
36
- return call_user_func_array( array( $this->gateway, $method), $arguments );
37
- }
38
-
39
- /**
40
- * Add default form fields to enable fee within payment method settings page
41
- */
42
- public function init_form_fields() {
43
- $this->extra_fields[ 'fee' ] = array(
44
- 'title' => __( 'Fee', 'woocommerce-germanized' ),
45
- 'type' => 'decimal',
46
- 'description' => __( 'This fee is being added if customer selects payment method within checkout.', 'woocommerce-germanized' ),
47
- 'default' => 0,
48
- 'desc_tip' => true,
49
- );
50
- $this->extra_fields[ 'fee_is_taxable' ] = array(
51
- 'title' => __( 'Fee is taxable?', 'woocommerce-germanized' ),
52
- 'type' => 'checkbox',
53
- 'label' => __( 'Check if fee is taxable.', 'woocommerce-germanized' ),
54
- 'default' => 'no',
55
- );
56
- foreach( $this->extra_fields as $key => $field )
57
- $this->gateway->form_fields[ $key ] = $field;
58
- }
59
-
60
- /**
61
- * Adds the fee to current Cart. If fee is taxable calculate net price and add net price as fee.
62
- */
63
- public function add_fee() {
64
- if ( $this->get_option( 'fee' ) ) {
65
- $is_taxable = ( $this->get_option( 'fee_is_taxable', 'no' ) == 'no' ? false : true );
66
- $fee = $this->get_option( 'fee' );
67
- if ( $is_taxable ) {
68
- $tax_rates = WC_Tax::get_rates();
69
- $fee_taxes = WC_Tax::calc_tax( $fee, $tax_rates, true );
70
- $fee = $fee - array_sum( $fee_taxes );
71
- }
72
- WC()->cart->add_fee( __( 'Payment charge', 'woocommerce-germanized' ), $fee, $is_taxable );
73
- }
74
- }
75
-
76
- /**
77
- * Adds a fee notice to the payment method title
78
- *
79
- * @param string $title
80
- * @param int $id payment method id
81
- */
82
- public function manipulate_title( $title, $id ) {
83
- if ( $id == $this->id && $this->get_option( 'fee' ) && ( is_checkout() || ( defined( 'DOING_AJAX' ) && isset( $_POST[ 'action' ] ) && $_POST[ 'action' ] == 'woocommerce_update_order_review' ) ) )
84
- $title = $this->title . ' <span class="small">(' . sprintf( __( 'plus %s payment charge', 'woocommerce-germanized' ), wc_price( $this->get_option( 'fee' ) ) ) . ')</span>';
85
- return $title;
86
- }
87
-
88
- }
89
-
90
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/abstracts/abstract-wc-gzd-product.php CHANGED
@@ -20,6 +20,8 @@ class WC_GZD_Product {
20
  */
21
  private $child;
22
 
 
 
23
  /**
24
  * Construct new WC_GZD_Product
25
  *
@@ -28,8 +30,21 @@ class WC_GZD_Product {
28
  public function __construct( $product ) {
29
  if ( is_numeric( $product ) )
30
  $product = WC()->product_factory->get_product_standalone( get_post( $product ) );
 
 
 
 
 
 
 
 
 
31
  $this->child = $product;
32
  }
 
 
 
 
33
 
34
  /**
35
  * Redirects __get calls to WC_Product Class.
@@ -38,10 +53,39 @@ class WC_GZD_Product {
38
  * @return mixed
39
  */
40
  public function __get( $key ) {
41
- if ( $this->child->$key )
42
- return $this->child->$key;
43
- else if ( $key == 'delivery_time' )
44
- return $this->get_delivery_time();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  return false;
46
  }
47
 
@@ -51,8 +95,8 @@ class WC_GZD_Product {
51
  * @return boolean|string
52
  */
53
  public function get_mini_desc() {
54
- if ( $this->child->mini_desc )
55
- return apply_filters( 'the_content', htmlspecialchars_decode( $this->child->mini_desc ) );
56
  return false;
57
  }
58
 
@@ -62,7 +106,7 @@ class WC_GZD_Product {
62
  * @return boolean
63
  */
64
  public function is_virtual_vat_exception() {
65
- return ( ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) == 'yes' ) && ( $this->child->is_downloadable() || $this->child->is_virtual() ) ? true : false );
66
  }
67
 
68
  /**
@@ -72,12 +116,13 @@ class WC_GZD_Product {
72
  */
73
  public function get_tax_info() {
74
  $_tax = new WC_Tax();
75
- if ( $this->child->is_taxable() ) {
76
  $tax_display_mode = get_option( 'woocommerce_tax_display_shop' );
77
- $tax_rates = $_tax->get_rates( $this->child->get_tax_class() );
78
  if ( ! empty( $tax_rates ) ) {
79
  $tax_rates = array_values( $tax_rates );
80
- if ( $this->is_virtual_vat_exception() )
 
81
  return ( $tax_display_mode == 'incl' ? __( 'incl. VAT', 'woocommerce-germanized' ) : __( 'excl. VAT', 'woocommerce-germanized' ) );
82
  return ( $tax_display_mode == 'incl' ? sprintf( __( 'incl. %s%% VAT', 'woocommerce-germanized' ), ( wc_gzd_format_tax_rate_percentage( $tax_rates[0][ 'rate' ] ) ) ) : sprintf( __( 'excl. %s%% VAT', 'woocommerce-germanized' ), ( wc_gzd_format_tax_rate_percentage( $tax_rates[0][ 'rate' ] ) ) ) );
83
  }
@@ -91,7 +136,7 @@ class WC_GZD_Product {
91
  * @return boolean
92
  */
93
  public function has_unit() {
94
- if ( $this->child->unit && $this->child->unit_price_regular && $this->child->unit_base )
95
  return true;
96
  return false;
97
  }
@@ -102,7 +147,7 @@ class WC_GZD_Product {
102
  * @return string
103
  */
104
  public function get_unit_base() {
105
- return ( $this->child->unit_base ) ? '<span class="unit-base">' . $this->child->unit_base . '</span>' . apply_filters( 'wc_gzd_unit_price_base_seperator', ' ' ) . '<span class="unit">' . $this->get_unit() . '</span>' : '';
106
  }
107
 
108
  /**
@@ -111,7 +156,7 @@ class WC_GZD_Product {
111
  * @return string
112
  */
113
  public function get_unit() {
114
- $unit = $this->child->unit;
115
  return WC_germanized()->units->$unit;
116
  }
117
 
@@ -121,7 +166,7 @@ class WC_GZD_Product {
121
  * @return string the regular price
122
  */
123
  public function get_unit_regular_price() {
124
- return apply_filters( 'woocommerce_gzd_get_unit_regular_price', $this->child->unit_price_regular, $this );
125
  }
126
 
127
  /**
@@ -130,7 +175,7 @@ class WC_GZD_Product {
130
  * @return string the sale price
131
  */
132
  public function get_unit_sale_price() {
133
- return apply_filters( 'woocommerce_gzd_get_unit_sale_price', $this->child->unit_price_sale, $this );
134
  }
135
 
136
  /**
@@ -153,7 +198,7 @@ class WC_GZD_Product {
153
  * @return string unit price including tax
154
  */
155
  public function get_unit_price_including_tax( $qty = 1, $price = '' ) {
156
- $price = ( $price == '' ) ? $this->child->unit_price : $price;
157
  return $this->child->get_price_including_tax( $qty, $price );
158
  }
159
 
@@ -165,8 +210,8 @@ class WC_GZD_Product {
165
  * @return string unit price excluding tax
166
  */
167
  public function get_unit_price_excluding_tax( $qty = 1, $price = '' ) {
168
- $price = ( $price == '' ) ? $this->child->unit_price : $price;
169
- return ( $price == '' ) ? '' : $this->child->get_price_excluding_tax( $qty, $price );
170
  }
171
 
172
  /**
@@ -183,12 +228,12 @@ class WC_GZD_Product {
183
  *
184
  * @return string
185
  */
186
- public function get_unit_html() {
187
  $display_price = $this->get_unit_price();
188
  $display_regular_price = $this->get_unit_price( 1, $this->get_unit_regular_price() );
189
  $display_sale_price = $this->get_unit_price( 1, $this->get_unit_sale_price() );
190
- $price_html = ( $this->is_on_unit_sale() ? $this->child->get_price_html_from_to( $display_regular_price, $display_sale_price ) : wc_price( $display_price ) );
191
- return ( $this->has_unit() ) ? str_replace( '{price}', $price_html . $this->child->get_price_suffix() . apply_filters( 'wc_gzd_unit_price_seperator', ' / ' ) . $this->get_unit_base(), get_option( 'woocommerce_gzd_unit_price_text' ) ) : '';
192
  }
193
 
194
  /**
@@ -197,7 +242,7 @@ class WC_GZD_Product {
197
  * @return bool|object false returns false if term does not exist otherwise returns term object
198
  */
199
  public function get_delivery_time() {
200
- $terms = wp_get_post_terms( $this->id, 'product_delivery_time' );
201
  if ( is_wp_error( $terms ) || empty( $terms ) )
202
  return false;
203
  return $terms[ 0 ];
@@ -210,7 +255,7 @@ class WC_GZD_Product {
210
  */
211
  public function get_delivery_time_term() {
212
  $delivery_time = $this->delivery_time;
213
- if ( empty( $delivery_time ) && get_option( 'woocommerce_gzd_default_delivery_time' ) && ! $this->child->is_downloadable() ) {
214
  $delivery_time = array( get_term_by( 'id', get_option( 'woocommerce_gzd_default_delivery_time' ), 'product_delivery_time' ) );
215
  if ( is_array( $delivery_time ) ) {
216
  array_values( $delivery_time );
@@ -235,7 +280,7 @@ class WC_GZD_Product {
235
  * @return string
236
  */
237
  public function get_shipping_costs_html() {
238
- if ( $this->child->is_virtual() && get_option( 'woocommerce_gzd_display_shipping_costs_virtual' ) != 'yes' )
239
  return false;
240
  $find = array(
241
  '{link}',
20
  */
21
  private $child;
22
 
23
+ protected $gzd_variation_level_meta = array();
24
+
25
  /**
26
  * Construct new WC_GZD_Product
27
  *
30
  public function __construct( $product ) {
31
  if ( is_numeric( $product ) )
32
  $product = WC()->product_factory->get_product_standalone( get_post( $product ) );
33
+ $this->gzd_variation_level_meta = array(
34
+ 'unit' => 0,
35
+ 'unit_price' => 0,
36
+ 'unit_base' => 0,
37
+ 'unit_price_regular' => 0,
38
+ 'unit_price_sale' => 0,
39
+ 'mini_desc' => '',
40
+ 'gzd_product' => NULL,
41
+ );
42
  $this->child = $product;
43
  }
44
+
45
+ public function is_variation() {
46
+ return ( $this->variation_id ? true : false );
47
+ }
48
 
49
  /**
50
  * Redirects __get calls to WC_Product Class.
53
  * @return mixed
54
  */
55
  public function __get( $key ) {
56
+
57
+ if ( $this->child->variation_id && in_array( $key, array_keys( $this->gzd_variation_level_meta ) ) ) {
58
+ $value = get_post_meta( $this->child->variation_id, '_' . $key, true );
59
+ if ( '' === $value )
60
+ $value = $this->gzd_variation_level_meta[ $key ];
61
+ } else if ( $key == 'delivery_time' ) {
62
+ $value = $this->get_delivery_time();
63
+ } else {
64
+ $value = $this->child->$key;
65
+ }
66
+
67
+ return $value;
68
+ }
69
+
70
+ /**
71
+ * Redirect issets to WC_Product Class
72
+ *
73
+ * @param string $key
74
+ * @return boolean
75
+ */
76
+ public function __isset( $key ) {
77
+
78
+ if ( $this->child->variation_id && in_array( $key, array_keys( $this->gzd_variation_level_meta ) ) ) {
79
+ return metadata_exists( 'post', $this->child->variation_id, '_' . $key );
80
+ } else {
81
+ return isset( $this->child->$key );
82
+ }
83
+
84
+ }
85
+
86
+ public function __call( $method, $args ) {
87
+ if ( method_exists( $this->child, $method ) )
88
+ return call_user_func_array( array( $this->child, $method ), $args );
89
  return false;
90
  }
91
 
95
  * @return boolean|string
96
  */
97
  public function get_mini_desc() {
98
+ if ( $this->mini_desc && ! empty( $this->mini_desc ) )
99
+ return apply_filters( 'the_content', htmlspecialchars_decode( $this->mini_desc ) );
100
  return false;
101
  }
102
 
106
  * @return boolean
107
  */
108
  public function is_virtual_vat_exception() {
109
+ return ( ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) == 'yes' ) && ( $this->is_downloadable() || $this->is_virtual() ) ? true : false );
110
  }
111
 
112
  /**
116
  */
117
  public function get_tax_info() {
118
  $_tax = new WC_Tax();
119
+ if ( $this->is_taxable() ) {
120
  $tax_display_mode = get_option( 'woocommerce_tax_display_shop' );
121
+ $tax_rates = $_tax->get_rates( $this->get_tax_class() );
122
  if ( ! empty( $tax_rates ) ) {
123
  $tax_rates = array_values( $tax_rates );
124
+ // If is variable or is virtual vat exception dont show exact tax rate
125
+ if ( $this->is_virtual_vat_exception() || $this->is_type( 'variable' ) )
126
  return ( $tax_display_mode == 'incl' ? __( 'incl. VAT', 'woocommerce-germanized' ) : __( 'excl. VAT', 'woocommerce-germanized' ) );
127
  return ( $tax_display_mode == 'incl' ? sprintf( __( 'incl. %s%% VAT', 'woocommerce-germanized' ), ( wc_gzd_format_tax_rate_percentage( $tax_rates[0][ 'rate' ] ) ) ) : sprintf( __( 'excl. %s%% VAT', 'woocommerce-germanized' ), ( wc_gzd_format_tax_rate_percentage( $tax_rates[0][ 'rate' ] ) ) ) );
128
  }
136
  * @return boolean
137
  */
138
  public function has_unit() {
139
+ if ( $this->unit && $this->unit_price_regular && $this->unit_base )
140
  return true;
141
  return false;
142
  }
147
  * @return string
148
  */
149
  public function get_unit_base() {
150
+ return ( $this->unit_base ) ? '<span class="unit-base">' . $this->unit_base . '</span>' . apply_filters( 'wc_gzd_unit_price_base_seperator', ' ' ) . '<span class="unit">' . $this->get_unit() . '</span>' : '';
151
  }
152
 
153
  /**
156
  * @return string
157
  */
158
  public function get_unit() {
159
+ $unit = $this->unit;
160
  return WC_germanized()->units->$unit;
161
  }
162
 
166
  * @return string the regular price
167
  */
168
  public function get_unit_regular_price() {
169
+ return apply_filters( 'woocommerce_gzd_get_unit_regular_price', $this->unit_price_regular, $this );
170
  }
171
 
172
  /**
175
  * @return string the sale price
176
  */
177
  public function get_unit_sale_price() {
178
+ return apply_filters( 'woocommerce_gzd_get_unit_sale_price', $this->unit_price_sale, $this );
179
  }
180
 
181
  /**
198
  * @return string unit price including tax
199
  */
200
  public function get_unit_price_including_tax( $qty = 1, $price = '' ) {
201
+ $price = ( $price == '' ) ? $this->unit_price : $price;
202
  return $this->child->get_price_including_tax( $qty, $price );
203
  }
204
 
210
  * @return string unit price excluding tax
211
  */
212
  public function get_unit_price_excluding_tax( $qty = 1, $price = '' ) {
213
+ $price = ( $price == '' ) ? $this->unit_price : $price;
214
+ return ( $price == '' ) ? '' : $this->get_price_excluding_tax( $qty, $price );
215
  }
216
 
217
  /**
228
  *
229
  * @return string
230
  */
231
+ public function get_unit_html( $show_sale = true ) {
232
  $display_price = $this->get_unit_price();
233
  $display_regular_price = $this->get_unit_price( 1, $this->get_unit_regular_price() );
234
  $display_sale_price = $this->get_unit_price( 1, $this->get_unit_sale_price() );
235
+ $price_html = ( ( $this->is_on_unit_sale() && $show_sale ) ? $this->get_price_html_from_to( $display_regular_price, $display_sale_price ) : wc_price( $display_price ) );
236
+ return ( $this->has_unit() ) ? str_replace( '{price}', $price_html . apply_filters( 'wc_gzd_unit_price_seperator', ' / ' ) . $this->get_unit_base(), get_option( 'woocommerce_gzd_unit_price_text' ) ) : '';
237
  }
238
 
239
  /**
242
  * @return bool|object false returns false if term does not exist otherwise returns term object
243
  */
244
  public function get_delivery_time() {
245
+ $terms = wp_get_post_terms( ( $this->is_variation() ? $this->variation_id : $this->id ), 'product_delivery_time' );
246
  if ( is_wp_error( $terms ) || empty( $terms ) )
247
  return false;
248
  return $terms[ 0 ];
255
  */
256
  public function get_delivery_time_term() {
257
  $delivery_time = $this->delivery_time;
258
+ if ( empty( $delivery_time ) && get_option( 'woocommerce_gzd_default_delivery_time' ) && ! $this->is_downloadable() ) {
259
  $delivery_time = array( get_term_by( 'id', get_option( 'woocommerce_gzd_default_delivery_time' ), 'product_delivery_time' ) );
260
  if ( is_array( $delivery_time ) ) {
261
  array_values( $delivery_time );
280
  * @return string
281
  */
282
  public function get_shipping_costs_html() {
283
+ if ( $this->is_virtual() && get_option( 'woocommerce_gzd_display_shipping_costs_virtual' ) != 'yes' )
284
  return false;
285
  $find = array(
286
  '{link}',
includes/admin/class-wc-gzd-admin-welcome.php CHANGED
@@ -68,9 +68,11 @@ class WC_GZD_Admin_Welcome {
68
  * @return void
69
  */
70
  public function admin_css() {
 
 
71
  wp_enqueue_style( 'fontawesome', plugins_url( '/assets/css/font-awesome.min.css', WC_GERMANIZED_PLUGIN_FILE ), array(), '4.2.0' );
72
  wp_enqueue_style( 'woocommerce-activation', plugins_url( '/assets/css/activation.css', WC_PLUGIN_FILE ), array(), WC_VERSION );
73
- wp_enqueue_style( 'woocommerce-gzd-activation', plugins_url( '/assets/css/woocommerce-gzd-activation.css', WC_GERMANIZED_PLUGIN_FILE ), array(), WC_GERMANIZED_VERSION );
74
  }
75
 
76
  /**
@@ -101,7 +103,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" style="margin-right: 1em"></a>
105
  <div class="about-text woocommerce-about-text">
106
  <?php
107
  if ( ! empty( $_GET['wc-gzd-installed'] ) )
@@ -116,11 +118,7 @@ class WC_GZD_Admin_Welcome {
116
  </div>
117
  <p class="woocommerce-actions wc-gzd-actions">
118
  <a href="<?php echo admin_url('admin.php?page=wc-settings&tab=germanized'); ?>" class="button button-primary">Einstellungen</a>
119
- <a class="vendidero button button-primary" href="<?php echo esc_url( 'http://vendidero.de/support', 'woocommerce-germanized' ); ?>">Hilfe & Support</a>
120
- <span class="wc-gzd-twitter">
121
- <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://vendidero.de/woocommerce-germanized" data-text="WooCommerce Germanized passt deinen Online-Shop an deutsche Rechtsgrundlagen an. Wir helfen Dir Abmahnungen zu verhindern. Kostenlos!" data-via="Vendidero" data-size="large" data-hashtags="WooCommerce Germanized">Tweet</a>
122
- <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
123
- </span>
124
  <span class="wc-gzd-fb">
125
  <iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvendidero.de%2Fwoocommerce-germanized&amp;width&amp;layout=button&amp;action=recommend&amp;show_faces=false&amp;share=false&amp;height=20" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:20px;" allowTransparency="true"></iframe>
126
  </span>
@@ -128,11 +126,11 @@ class WC_GZD_Admin_Welcome {
128
  <div class="changelog vendipro">
129
  <h3>VendiPro - Das WooCommerce Theme für den deutschen Markt</h3>
130
  <div class="left">
131
- <a href="http://vendidero.de/vendipro" target="_blank"><img src="<?php echo WC_germanized()->plugin_url();?>/assets/images/vendidero.jpg" /></a>
132
  </div>
133
  <div class="right">
134
  <p>Endlich ist es soweit - Ein WooCommerce Theme, perfekt auf den deutschen Markt abgestimmt.
135
- Mit <a href="http://vendidero.de/vendipro" target="_blank">VendiPro</a> wirken alle WooCommerce & WooCommerce Germanized Inhalte einfach noch professioneller.</p>
136
  <div class="wc-feature wc-vendipro-features feature-section col two-col">
137
  <div>
138
  <h4><i class="fa fa-mobile"></i> Responsive Layout</h4>
@@ -152,34 +150,54 @@ class WC_GZD_Admin_Welcome {
152
  </div>
153
  </div>
154
  <div class="vendipro-buttons">
155
- <a href="http://vendidero.de/vendipro" target="_blank" class="button button-primary wc-gzd-button">mehr erfahren</a>
156
  <p class="price smaller">ab 49,95 € inkl. Mwst. - inkl. 1 Jahr Updates & Premium Support!</p>
157
  </div>
158
  </div>
159
  </div>
160
  <div class="changelog">
161
- <h3>Neu in WooCommerce Germanized 1.2</h3>
162
  <div class="wc-feature feature-section col three-col" style="margin-bottom: -30px">
163
  <div>
164
- <h4><i class="fa fa-envelope"></i> Double Opt-In</h4>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
  <p>
166
- Von nun an kannst du optional das Double Opt-In Verfahren für Benutzerkonten aktivieren.
167
- Dazu gab es vor kurzem ein Urteil des Amtsgericht Berlin Pankow/Weißensee. Mehr dazu <a href="http://t3n.de/news/urteil-anmeldebestatigungen-double-opt-in-pflicht-592304/" target="_blank">hier</a>.
168
  </p>
169
  </div>
170
  <div>
171
- <h4><i class="fa fa-truck"></i> Steuern für Versandkosten</h4>
172
  <p>
173
- Die Besteuerung von Versandkosten und Gebühren ist in Deutschland ziemlich kompliziert.
174
- Auf Wunsch passt WooCommerce Germanized die Besteuerung nun automatisiert an und berechnet die Steuern
175
- für Versandkosten und Gebühren basierend auf den MwSt.-Anteilen im Warenkorb. Hier findest du mehr <a href="http://www.it-recht-kanzlei.de/umsatzsteuer-versandkosten-mehrwertsteuer.html" target="_blank">Informationen</a>.
176
  </p>
177
  </div>
178
  <div class="last-feature">
179
- <h4><i class="fa fa-hand-o-up"></i> WC 2.3 - Kompatibilität</h4>
180
  <p>
181
- Mit dieser Version unterstützt WC Germanized auch die neueste WooCommerce Version (2.3), die in Kürze erscheint.
182
- WC Germanized bleibt aber vorerst auch rückwärtskompatibel und unterstützt weiterhin 2.2.
183
  </p>
184
  </div>
185
  </div>
68
  * @return void
69
  */
70
  public function admin_css() {
71
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
72
+
73
  wp_enqueue_style( 'fontawesome', plugins_url( '/assets/css/font-awesome.min.css', WC_GERMANIZED_PLUGIN_FILE ), array(), '4.2.0' );
74
  wp_enqueue_style( 'woocommerce-activation', plugins_url( '/assets/css/activation.css', WC_PLUGIN_FILE ), array(), WC_VERSION );
75
+ wp_enqueue_style( 'woocommerce-gzd-activation', plugins_url( '/assets/css/woocommerce-gzd-activation' . $suffix . '.css', WC_GERMANIZED_PLUGIN_FILE ), array(), WC_GERMANIZED_VERSION );
76
  }
77
 
78
  /**
103
  $major_version = substr( WC_germanized()->version, 0, 3 );
104
  ?>
105
  <h1>Willkommen bei WooCommerce Germanized</h1>
106
+ <a class="wc-gzd-logo" href="https://vendidero.de/woocommerce-germanized" target="_blank" style="margin-right: 1em"></a>
107
  <div class="about-text woocommerce-about-text">
108
  <?php
109
  if ( ! empty( $_GET['wc-gzd-installed'] ) )
118
  </div>
119
  <p class="woocommerce-actions wc-gzd-actions">
120
  <a href="<?php echo admin_url('admin.php?page=wc-settings&tab=germanized'); ?>" class="button button-primary">Einstellungen</a>
121
+ <a href="https://vendidero.de/woocommerce-germanized#buy" target="_blank" class="button button-primary">Upgrade zur Pro Version</a>
 
 
 
 
122
  <span class="wc-gzd-fb">
123
  <iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvendidero.de%2Fwoocommerce-germanized&amp;width&amp;layout=button&amp;action=recommend&amp;show_faces=false&amp;share=false&amp;height=20" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:20px;" allowTransparency="true"></iframe>
124
  </span>
126
  <div class="changelog vendipro">
127
  <h3>VendiPro - Das WooCommerce Theme für den deutschen Markt</h3>
128
  <div class="left">
129
+ <a href="https://vendidero.de/vendipro" target="_blank"><img src="<?php echo WC_germanized()->plugin_url();?>/assets/images/vendidero.jpg" /></a>
130
  </div>
131
  <div class="right">
132
  <p>Endlich ist es soweit - Ein WooCommerce Theme, perfekt auf den deutschen Markt abgestimmt.
133
+ Mit <a href="https://vendidero.de/vendipro" target="_blank">VendiPro</a> wirken alle WooCommerce & WooCommerce Germanized Inhalte einfach noch professioneller.</p>
134
  <div class="wc-feature wc-vendipro-features feature-section col two-col">
135
  <div>
136
  <h4><i class="fa fa-mobile"></i> Responsive Layout</h4>
150
  </div>
151
  </div>
152
  <div class="vendipro-buttons">
153
+ <a href="https://vendidero.de/vendipro" target="_blank" class="button button-primary wc-gzd-button">mehr erfahren</a>
154
  <p class="price smaller">ab 49,95 € inkl. Mwst. - inkl. 1 Jahr Updates & Premium Support!</p>
155
  </div>
156
  </div>
157
  </div>
158
  <div class="changelog">
159
+ <h3>Neu in WooCommerce Germanized 1.3</h3>
160
  <div class="wc-feature feature-section col three-col" style="margin-bottom: -30px">
161
  <div>
162
+ <h4><i class="fa fa-file-pdf-o"></i> PDF Rechnungen <a class="wc-gzd-pro" target="_blank" href="https://vendidero.de/woocommerce-germanized#accounting">Pro</a></h4>
163
+ <p>
164
+ Als glücklicker Pro-User kannst du mit wenigen Klicks PDF Rechnungen und Stornierungen zu deinen Bestellungen erzeugen.
165
+ Natürlich wurden auch die Rechnungen optimal an die Bedürfnisse des deutschen Marktes angepasst.
166
+ </p>
167
+ </div>
168
+ <div>
169
+ <h4><i class="fa fa-file-text-o"></i> Mustertexte API <a class="wc-gzd-pro" target="_blank" href="https://vendidero.de/woocommerce-germanized#generator">Pro</a></h4>
170
+ <p>
171
+ Generiere über die Schnittstelle zu vendidero.de in deinem Backend einfach wichtige Mustertexte für AGB & Widerrufsbelehrung.
172
+ Fülle einfach den Fragebogen aus und erhalte einen Mustertext, den du mit einem Klick in die entsprechende Seite übernehmen kannst.
173
+ </p>
174
+ </div>
175
+ <div class="last-feature">
176
+ <h4><i class="fa fa-clock-o"></i> Vertragsschluss <a class="wc-gzd-pro" target="_blank" href="https://vendidero.de/woocommerce-germanized#contract">Pro</a></h4>
177
+ <p>
178
+ Du möchtest den Zeitpunkt des Vertragsschlusses aktiv bestimmen und deine Bestellungen manuell prüfen?
179
+ Alle Zahlungsinformationen werden erst dann an den Kunden ausgegeben, wenn du die Bestellung annimmst.
180
+ </p>
181
+ </div>
182
+ <div>
183
+ <h4><i class="fa fa-thumbs-up"></i> Theme Kompatibilität</h4>
184
  <p>
185
+ Falls du WooCommerce > 2.3 nutzst, überschreibt WooCommerce Germanized von nun an keine Templates mehr.
186
+ Damit sollte es mit deinem Theme keine Probleme mehr während des Bezahlvorganges geben.
187
  </p>
188
  </div>
189
  <div>
190
+ <h4><i class="fa fa-arrows-h"></i> Einheiten anlegen</h4>
191
  <p>
192
+ Du verkaufst basierend auf Einheitspreisen? Dann möchtest du vielleicht neue Einheiten (z.B. "Stück") hinzufügen.
193
+ Alles kein Problem mehr mit dem <a href="<?php echo admin_url('edit-tags.php?taxonomy=product_unit&post_type=product'); ?>">Einheiten-Editor</a>. Füge neue Einheiten hinzu oder passe die Bezeichnung an.
 
194
  </p>
195
  </div>
196
  <div class="last-feature">
197
+ <h4><i class="fa fa-language"></i> WPML Kompatibilität</h4>
198
  <p>
199
+ Einige von euch betreiben Multi-Sprachen-Shops. Um auch die Optionen (Kaufen-Button-Text etc.) von WooCommerce Germanized übersetzen zu können, haben wir
200
+ eine wpml-confix.xml Datei angelegt, die euch dabei hilft die Strings zu übersetzen.
201
  </p>
202
  </div>
203
  </div>
includes/admin/class-wc-gzd-admin.php CHANGED
@@ -44,10 +44,20 @@ class WC_GZD_Admin {
44
  }
45
 
46
  public function settings_page_scroll_top() {
47
- $assets_path = str_replace( array( 'http:', 'https:' ), '', WC_germanized()->plugin_url() ) . '/assets/';
 
 
 
 
 
48
  $admin_script_path = $assets_path . 'js/admin/';
 
49
  if ( isset( $_GET[ 'tab' ] ) && $_GET[ 'tab' ] == 'germanized' )
50
- wp_enqueue_script( 'wc-gzd-admin', $admin_script_path . 'settings.js', array( 'jquery', 'woocommerce_settings' ), WC_GERMANIZED_VERSION, true );
 
 
 
 
51
  }
52
 
53
  public function add_legal_page_metabox() {
44
  }
45
 
46
  public function settings_page_scroll_top() {
47
+
48
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
49
+ $assets_path = WC_germanized()->plugin_url() . '/assets/';
50
+ wp_register_style( 'woocommerce-gzd-admin', $assets_path . 'css/woocommerce-gzd-admin' . $suffix . '.css', false, WC_germanized()->version );
51
+ wp_enqueue_style( 'woocommerce-gzd-admin' );
52
+
53
  $admin_script_path = $assets_path . 'js/admin/';
54
+
55
  if ( isset( $_GET[ 'tab' ] ) && $_GET[ 'tab' ] == 'germanized' )
56
+ wp_enqueue_script( 'wc-gzd-admin', $admin_script_path . 'settings' . $suffix . '.js', array( 'jquery', 'woocommerce_settings' ), WC_GERMANIZED_VERSION, true );
57
+
58
+ // Hide delivery time and unit tagsdiv
59
+ if ( version_compare( WC()->version, '2.3', '>=' ) )
60
+ wp_add_inline_style( 'woocommerce-gzd-admin', '#tagsdiv-product_delivery_time, #tagsdiv-product_unit {display: none}' );
61
  }
62
 
63
  public function add_legal_page_metabox() {
includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php CHANGED
@@ -29,62 +29,42 @@ class WC_Germanized_Meta_Box_Product_Data_Variable {
29
  return self::output_pre( $loop, $variation_data );
30
  $_product = wc_get_product( $variation );
31
  $variation_id = $_product->variation_id;
32
- $variation_meta = get_post_meta( $variation_id );
33
- $variation_meta_level = $_product->get_level_meta_data();
34
- if ( ! empty( $variation_meta_level ) ) {
35
- foreach ( $variation_meta_level as $key => $value ) {
36
- $key = '_' . $key;
37
- if ( ! isset( $variation_data[ $key ] ) )
38
- $variation_data[ $key ] = isset( $variation_meta[ $key ][0] ) ? maybe_unserialize( $variation_meta[ $key ][0] ) : $value;
39
- }
40
- }
41
- $delivery_times = get_the_terms( $variation_id, 'product_delivery_time' );
42
- $delivery_time = ( $delivery_times && ! is_wp_error( $delivery_times ) ) ? current( $delivery_times )->term_id : '';
43
  ?>
44
  <div class="variable_pricing_unit">
45
  <p class="form-row form-row-first">
46
  <label><?php _e( 'Unit', 'woocommerce-germanized' ); ?>:</label>
47
  <select name="variable_unit[<?php echo $loop; ?>]">
48
- <option value="parent" <?php selected( is_null( isset( $variation_data['_unit'] ) ? $variation_data['_unit'] : null ), true ); ?>><?php _e( 'None', 'woocommerce-germanized' ); ?></option>
49
  <?php
50
  foreach ( WC_germanized()->units->get_units() as $key => $value )
51
- echo '<option value="' . esc_attr( $key ) . '" ' . selected( $key === ( isset( $variation_data['_unit'] ) ? $variation_data['_unit'] : '' ) , true, false ) . '>' . esc_html( $value ) . '</option>';
52
  ?></select>
53
  </p>
54
  <p class="form-row form-row-last">
55
  <label for="variable_unit_base"><?php echo __( 'Unit Base', 'woocommerce-germanized' );?>:</label>
56
- <input class="input-text wc_input_decimal" size="6" type="text" name="variable_unit_base[<?php echo $loop; ?>]" value="<?php echo ( isset( $variation_data['_unit_base'] ) ? esc_attr( wc_format_localized_decimal( $variation_data['_unit_base'] ) ) : '' );?>" placeholder="" />
57
  </p>
58
  <p class="form-row form-row-first">
59
  <label for="variable_unit_price_regular"><?php echo __( 'Regular Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')'; ?>:</label>
60
- <input class="input-text wc_input_price" size="5" type="text" name="variable_unit_price_regular[<?php echo $loop; ?>]" value="<?php echo ( isset( $variation_data['_unit_price_regular'] ) ? esc_attr( wc_format_localized_price( $variation_data['_unit_price_regular'] ) ) : '' );?>" placeholder="" />
61
  </p>
62
  <p class="form-row form-row-last">
63
  <label for="variable_unit_price_sale"><?php echo __( 'Sale Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')'; ?>:</label>
64
- <input class="input-text wc_input_price" size="5" type="text" name="variable_unit_price_sale[<?php echo $loop; ?>]" value="<?php echo ( isset( $variation_data['_unit_price_sale'] ) ? esc_attr( wc_format_localized_price( $variation_data['_unit_price_sale'] ) ) : '' );?>" placeholder="" />
65
  </p>
66
  </div>
67
  <div class="variable_shipping_time hide_if_variation_virtual">
68
- <p class="form-row form-row-full">
69
- <label><?php _e( 'Delivery Time', 'woocommerce-germanized' ); ?>:</label>
70
- <?php
71
- $args = array(
72
- 'taxonomy' => 'product_delivery_time',
73
- 'hide_empty' => 0,
74
- 'show_option_none' => __( 'None', 'woocommerce-germanized' ),
75
- 'name' => 'variable_delivery_time[' . $loop . ']',
76
- 'id' => '',
77
- 'selected' => isset( $delivery_time ) ? esc_attr( $delivery_time ) : '',
78
- 'echo' => 0
79
- );
80
- echo wp_dropdown_categories( $args );
81
- ?>
82
  </p>
 
83
  </div>
84
  <div class="variable_cart_mini_desc">
85
  <p class="form-row form-row-full">
86
  <label for="variable_product_mini_desc"><?php echo __( 'Optional Mini Description', 'woocommerce-germanized' ); ?>:</label>
87
- <?php wp_editor( htmlspecialchars_decode( ( isset( $variation_data['_mini_desc'] ) ? $variation_data['_mini_desc'] : '' ) ), 'wc_gzd_product_mini_desc_' . $loop, array( 'textarea_name' => 'variable_product_mini_desc[' . $loop . ']', 'textarea_rows' => 5, 'media_buttons' => false, 'teeny' => true ) ); ?>
88
  </p>
89
  </div>
90
  <?php
@@ -160,6 +140,8 @@ class WC_Germanized_Meta_Box_Product_Data_Variable {
160
  $variable_delivery_time = $_POST['variable_delivery_time'];
161
  $variable_product_desc = $_POST['variable_product_mini_desc'];
162
  for ( $i = 0; $i < sizeof( $variable_post_id ); $i++ ) {
 
 
163
  $variation_id = (int) $variable_post_id[$i];
164
  if ( isset( $variable_unit[$i] ) ) {
165
  update_post_meta( $variation_id, '_unit', sanitize_text_field( $variable_unit[$i] ) );
@@ -182,8 +164,10 @@ class WC_Germanized_Meta_Box_Product_Data_Variable {
182
  update_post_meta( $variation_id, '_unit_price', ( $variable_unit_price_sale[$i] === '' ) ? '' : wc_format_decimal( $variable_unit_price_sale[$i] ) );
183
  }
184
  }
185
- $variable_delivery_time[$i] = ! empty( $variable_delivery_time[$i] ) ? (int) $variable_delivery_time[$i] : '';
186
- wp_set_object_terms( $variation_id, $variable_delivery_time[$i], 'product_delivery_time' );
 
 
187
  }
188
  }
189
  }
29
  return self::output_pre( $loop, $variation_data );
30
  $_product = wc_get_product( $variation );
31
  $variation_id = $_product->variation_id;
32
+ $delivery_time = $_product->gzd_product->delivery_time;
 
 
 
 
 
 
 
 
 
 
33
  ?>
34
  <div class="variable_pricing_unit">
35
  <p class="form-row form-row-first">
36
  <label><?php _e( 'Unit', 'woocommerce-germanized' ); ?>:</label>
37
  <select name="variable_unit[<?php echo $loop; ?>]">
38
+ <option value="parent" <?php selected( is_null( isset( $_product->unit ) ? $_product->unit : null ), true ); ?>><?php _e( 'None', 'woocommerce-germanized' ); ?></option>
39
  <?php
40
  foreach ( WC_germanized()->units->get_units() as $key => $value )
41
+ echo '<option value="' . esc_attr( $key ) . '" ' . selected( $key === ( isset( $_product->unit ) ? $_product->unit : '' ) , true, false ) . '>' . esc_html( $value ) . '</option>';
42
  ?></select>
43
  </p>
44
  <p class="form-row form-row-last">
45
  <label for="variable_unit_base"><?php echo __( 'Unit Base', 'woocommerce-germanized' );?>:</label>
46
+ <input class="input-text wc_input_decimal" size="6" type="text" name="variable_unit_base[<?php echo $loop; ?>]" value="<?php echo ( isset( $_product->unit_base ) ? esc_attr( wc_format_localized_decimal( $_product->unit_base ) ) : '' );?>" placeholder="" />
47
  </p>
48
  <p class="form-row form-row-first">
49
  <label for="variable_unit_price_regular"><?php echo __( 'Regular Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')'; ?>:</label>
50
+ <input class="input-text wc_input_price" size="5" type="text" name="variable_unit_price_regular[<?php echo $loop; ?>]" value="<?php echo ( isset( $_product->unit_price_regular ) ? esc_attr( wc_format_localized_price( $_product->unit_price_regular ) ) : '' );?>" placeholder="" />
51
  </p>
52
  <p class="form-row form-row-last">
53
  <label for="variable_unit_price_sale"><?php echo __( 'Sale Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')'; ?>:</label>
54
+ <input class="input-text wc_input_price" size="5" type="text" name="variable_unit_price_sale[<?php echo $loop; ?>]" value="<?php echo ( isset( $_product->unit_price_sale ) ? esc_attr( wc_format_localized_price( $_product->unit_price_sale ) ) : '' );?>" placeholder="" />
55
  </p>
56
  </div>
57
  <div class="variable_shipping_time hide_if_variation_virtual">
58
+ <p class="form-row form-row-first">
59
+ <label for="delivery_time"><?php _e( 'Delivery Time', 'woocommerce-germanized' ); ?></label>
60
+ <input type="hidden" class="wc-product-search wc-gzd-delivery-time-search" style="width: 100%" id="variable_delivery_time_<?php echo $loop; ?>" name="variable_delivery_time[<?php echo $loop; ?>]" data-minimum_input_length="1" data-allow_clear="true" data-placeholder="<?php _e( 'Search for a delivery time&hellip;', 'woocommerce-germanized' ); ?>" data-action="woocommerce_gzd_json_search_delivery_time" data-multiple="false" data-selected="<?php echo ( $delivery_time ? $delivery_time->name : '' ); ?>" value="<?php echo ( $delivery_time ? $delivery_time->term_id : '' ); ?>" />
 
 
 
 
 
 
 
 
 
 
 
61
  </p>
62
+
63
  </div>
64
  <div class="variable_cart_mini_desc">
65
  <p class="form-row form-row-full">
66
  <label for="variable_product_mini_desc"><?php echo __( 'Optional Mini Description', 'woocommerce-germanized' ); ?>:</label>
67
+ <?php wp_editor( htmlspecialchars_decode( ( isset( $_product->mini_desc ) ? $_product->mini_desc : '' ) ), 'wc_gzd_product_mini_desc_' . $loop, array( 'textarea_name' => 'variable_product_mini_desc[' . $loop . ']', 'textarea_rows' => 5, 'media_buttons' => false, 'teeny' => true ) ); ?>
68
  </p>
69
  </div>
70
  <?php
140
  $variable_delivery_time = $_POST['variable_delivery_time'];
141
  $variable_product_desc = $_POST['variable_product_mini_desc'];
142
  for ( $i = 0; $i < sizeof( $variable_post_id ); $i++ ) {
143
+ if ( ! isset( $variable_post_id[ $i ] ) )
144
+ continue;
145
  $variation_id = (int) $variable_post_id[$i];
146
  if ( isset( $variable_unit[$i] ) ) {
147
  update_post_meta( $variation_id, '_unit', sanitize_text_field( $variable_unit[$i] ) );
164
  update_post_meta( $variation_id, '_unit_price', ( $variable_unit_price_sale[$i] === '' ) ? '' : wc_format_decimal( $variable_unit_price_sale[$i] ) );
165
  }
166
  }
167
+ if ( isset( $variable_delivery_time[$i] ) && ! empty( $variable_delivery_time[$i] ) && ! is_numeric( $variable_delivery_time[$i] ) )
168
+ wp_set_post_terms( $variation_id, sanitize_text_field( $variable_delivery_time[$i] ), 'product_delivery_time' );
169
+ else
170
+ wp_set_object_terms( $variation_id, absint( $variable_delivery_time[$i] ), 'product_delivery_time' );
171
  }
172
  }
173
  }
includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php CHANGED
@@ -22,10 +22,29 @@ class WC_Germanized_Meta_Box_Product_Data {
22
  }
23
 
24
  public static function output() {
 
 
 
 
 
 
 
 
25
  woocommerce_wp_select( array( 'id' => '_unit', 'label' => __( 'Unit', 'woocommerce-germanized' ), 'options' => array_merge( array( 'none' => __( 'Select unit', 'woocommerce-germanized' ) ), WC_germanized()->units->get_units() ), 'desc_tip' => true, 'description' => __( 'Needed if selling on a per unit basis', 'woocommerce-germanized' ) ) );
26
  woocommerce_wp_text_input( array( 'id' => '_unit_base', 'label' => __( 'Unit Base', 'woocommerce-germanized' ), 'data_type' => 'decimal', 'desc_tip' => true, 'description' => __( 'Unit price per amount (e.g. 100)', 'woocommerce-germanized' ) ) );
27
  woocommerce_wp_text_input( array( 'id' => '_unit_price_regular', 'label' => __( 'Regular Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price' ) );
28
  woocommerce_wp_text_input( array( 'id' => '_unit_price_sale', 'label' => __( 'Sale Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price' ) );
 
 
 
 
 
 
 
 
 
 
 
29
  }
30
 
31
  public static function save($post_id) {
@@ -50,6 +69,11 @@ class WC_Germanized_Meta_Box_Product_Data {
50
  if ( isset( $_POST[ '_mini_desc' ] ) ) {
51
  update_post_meta( $post_id, '_mini_desc', esc_html( $_POST[ '_mini_desc' ] ) );
52
  }
 
 
 
 
 
53
  }
54
 
55
  }
22
  }
23
 
24
  public static function output() {
25
+ global $post, $thepostid;
26
+
27
+ $thepostid = $post->ID;
28
+ $_product = wc_get_product( $thepostid );
29
+ $terms = array();
30
+
31
+ $delivery_time = $_product->gzd_product->delivery_time;
32
+
33
  woocommerce_wp_select( array( 'id' => '_unit', 'label' => __( 'Unit', 'woocommerce-germanized' ), 'options' => array_merge( array( 'none' => __( 'Select unit', 'woocommerce-germanized' ) ), WC_germanized()->units->get_units() ), 'desc_tip' => true, 'description' => __( 'Needed if selling on a per unit basis', 'woocommerce-germanized' ) ) );
34
  woocommerce_wp_text_input( array( 'id' => '_unit_base', 'label' => __( 'Unit Base', 'woocommerce-germanized' ), 'data_type' => 'decimal', 'desc_tip' => true, 'description' => __( 'Unit price per amount (e.g. 100)', 'woocommerce-germanized' ) ) );
35
  woocommerce_wp_text_input( array( 'id' => '_unit_price_regular', 'label' => __( 'Regular Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price' ) );
36
  woocommerce_wp_text_input( array( 'id' => '_unit_price_sale', 'label' => __( 'Sale Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price' ) );
37
+
38
+ if ( version_compare( WC()->version, '2.3', '<' ) )
39
+ return;
40
+ ?>
41
+
42
+ <p class="form-field">
43
+ <label for="delivery_time"><?php _e( 'Delivery Time', 'woocommerce-germanized' ); ?></label>
44
+ <input type="hidden" class="wc-product-search wc-gzd-delivery-time-search" style="width: 50%" id="delivery_time" name="delivery_time" data-minimum_input_length="1" data-allow_clear="true" data-placeholder="<?php _e( 'Search for a delivery time&hellip;', 'woocommerce-germanized' ); ?>" data-action="woocommerce_gzd_json_search_delivery_time" data-multiple="false" data-selected="<?php echo ( $delivery_time ? $delivery_time->name : '' ); ?>" value="<?php echo ( $delivery_time ? $delivery_time->term_id : '' ); ?>" />
45
+ </p>
46
+
47
+ <?php
48
  }
49
 
50
  public static function save($post_id) {
69
  if ( isset( $_POST[ '_mini_desc' ] ) ) {
70
  update_post_meta( $post_id, '_mini_desc', esc_html( $_POST[ '_mini_desc' ] ) );
71
  }
72
+
73
+ if ( isset( $_POST[ 'delivery_time' ] ) && ! is_numeric( $_POST[ 'delivery_time' ] ) )
74
+ wp_set_post_terms( $post_id, sanitize_text_field( $_POST[ 'delivery_time' ] ), 'product_delivery_time' );
75
+ else
76
+ wp_set_object_terms( $post_id, absint( $_POST[ 'delivery_time' ] ) , 'product_delivery_time' );
77
  }
78
 
79
  }
includes/admin/settings/class-wc-gzd-settings-germanized.php CHANGED
@@ -15,6 +15,8 @@ if ( ! class_exists( 'WC_GZD_Settings_Germanized' ) ) :
15
  */
16
  class WC_GZD_Settings_Germanized extends WC_Settings_Page {
17
 
 
 
18
  /**
19
  * Adds Hooks to output and save settings
20
  */
@@ -29,7 +31,33 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
29
  add_filter( 'woocommerce_gzd_get_settings_display', array( $this, 'get_display_settings' ) );
30
  add_action( 'woocommerce_gzd_before_save_section_', array( $this, 'before_save' ), 0, 1 );
31
  add_action( 'woocommerce_gzd_after_save_section_', array( $this, 'after_save' ), 0, 1 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
 
 
 
 
 
 
 
 
33
  }
34
 
35
  /**
@@ -61,7 +89,7 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
61
  foreach ( $email_templates as $email )
62
  $email_select[ $email->id ] = empty( $email->title ) ? ucfirst( $email->id ) : ucfirst( $email->title );
63
 
64
- return apply_filters( 'woocommerce_germanized_settings', array(
65
 
66
  array( 'title' => __( 'General', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'general_options' ),
67
 
@@ -110,6 +138,18 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
110
 
111
  array( 'type' => 'sectionend', 'id' => 'general_options' ),
112
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  array( 'title' => __( 'Legal Pages', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'legal_pages_options' ),
114
 
115
  array(
@@ -357,7 +397,34 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
357
 
358
  array( 'type' => 'sectionend', 'id' => 'virtual_vat_options' ),
359
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
360
  ) ); // End general settings
 
 
 
361
  }
362
 
363
  public function get_display_settings() {
@@ -492,6 +559,19 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
492
 
493
  array( 'title' => __( 'Checkout & Cart', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'checkout_options' ),
494
 
 
 
 
 
 
 
 
 
 
 
 
 
 
495
  array(
496
  'title' => __( 'Hide taxes estimated', 'woocommerce-germanized' ),
497
  'desc' => __( 'Do you want to hide the "taxes and shipping estimated" text from your cart?', 'woocommerce-germanized' ),
@@ -528,6 +608,15 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
528
  'desc_tip' => __( 'This button may let your customer edit their order before submitting. Some people state that this button should be hidden to avoid legal problems.', 'woocommerce-germanized' ),
529
  ),
530
 
 
 
 
 
 
 
 
 
 
531
  array(
532
  'title' => __( 'Checkout Table Color', 'woocommerce-germanized' ),
533
  'id' => 'woocommerce_gzd_display_checkout_table_color',
@@ -611,41 +700,22 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
611
  global $current_section;
612
  $settings = $this->get_settings();
613
  $sidebar = $this->get_sidebar();
614
-
615
  if ( $this->get_sections() ) {
616
  foreach ( $this->get_sections() as $section => $name ) {
617
  if ( $section == $current_section ) {
618
  $settings = apply_filters( 'woocommerce_gzd_get_settings_' . $section, $this->get_settings() );
619
- $sidebar = apply_filters( 'woocommerce_gzd_get_sidebar_' . $section, $this->get_sidebar() );
620
  }
621
  }
622
  }
623
-
624
- ?>
625
- <div class="wc-gzd-admin-settings">
626
- <?php do_action( 'wc_germanized_settings_section_before_' . sanitize_title( $current_section ) ); ?>
627
- <?php WC_Admin_Settings::output_fields( $settings ); ?>
628
- <?php do_action( 'wc_germanized_settings_section_after_' . sanitize_title( $current_section ) ); ?>
629
- </div>
630
- <?php echo $sidebar; ?>
631
- <?php
632
  }
633
 
634
  public function get_sidebar() {
635
- $html = '
636
- <div class="wc-gzd-admin-settings-sidebar">
637
- <h3>VendiPro - Typisch deutsch!</h3>
638
- <div class="wc-gzd-sidebar-img">
639
- <a href="http://vendidero.de/vendipro" target="_blank"><img class="browser" src="' . WC_germanized()->plugin_url() . '/assets/images/vendidero.jpg" /></a>
640
- </div>
641
- <p>VendiPro ist ein für den deutschen Markt entwickeltes WooCommerce Theme. Mit VendiPro sind alle WooCommerce und WooCommerce Germanized Einstellungen auch optisch perfekt auf den deutschen Markt abgestimmt.</p>
642
- <div class="wc-gzd-sidebar-action">
643
- <a class="button button-primary wc-gzd-button" href="http://vendidero.de/vendipro" target="_blank">jetzt entdecken</a>
644
- <span class="small">ab 49,95 € inkl. Mwst. und 1 Jahr Updates & Support!</span>
645
- </div>
646
- </div>
647
- ';
648
- return $html;
649
  }
650
 
651
  /**
@@ -669,7 +739,8 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
669
 
670
  do_action( 'woocommerce_gzd_before_save_section_' . $current_section, $settings );
671
 
672
- WC_Admin_Settings::save_fields( $settings );
 
673
 
674
  do_action( 'woocommerce_gzd_after_save_section_' . $current_section, $settings );
675
  }
@@ -719,6 +790,27 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
719
  }
720
  }
721
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
722
  }
723
 
724
  endif;
15
  */
16
  class WC_GZD_Settings_Germanized extends WC_Settings_Page {
17
 
18
+ public $premium_sections = array();
19
+
20
  /**
21
  * Adds Hooks to output and save settings
22
  */
31
  add_filter( 'woocommerce_gzd_get_settings_display', array( $this, 'get_display_settings' ) );
32
  add_action( 'woocommerce_gzd_before_save_section_', array( $this, 'before_save' ), 0, 1 );
33
  add_action( 'woocommerce_gzd_after_save_section_', array( $this, 'after_save' ), 0, 1 );
34
+ add_action( 'woocommerce_admin_field_image', array( $this, 'image_field' ), 0, 1 );
35
+
36
+ if ( ! WC_Germanized()->is_pro() ) {
37
+ // Premium sections
38
+ $this->premium_sections = array(
39
+ 'invoices' => sprintf( __( 'Invoice Options %s', 'woocommerce-germanized' ), '<span class="wc-gzd-premium-section-tab">pro</span>' ),
40
+ 'agbs' => sprintf( __( 'Terms & Conditions generator %s', 'woocommerce-germanized' ), '<span class="wc-gzd-premium-section-tab">pro</span>' ),
41
+ 'widerruf' => sprintf( __( 'Revocation generator %s', 'woocommerce-germanized' ), '<span class="wc-gzd-premium-section-tab">pro</span>' ),
42
+ );
43
+
44
+ add_filter( 'woocommerce_gzd_settings_sections', array( $this, 'set_premium_sections' ), 0 );
45
+ foreach ( $this->premium_sections as $key => $section ) {
46
+ add_filter( 'woocommerce_gzd_get_settings_' . $key, array( $this, 'get_premium_settings' ), 0 );
47
+ add_filter( 'wc_germanized_settings_section_before_' . $key, array( $this, 'output_premium_section' ), 0 );
48
+ add_filter( 'woocommerce_gzd_get_sidebar_' . $key, array( $this, 'get_premium_sidebar' ), 0 );
49
+ }
50
+ }
51
+ }
52
 
53
+ public function image_field( $value ) {
54
+ ?>
55
+ <tr valign="top">
56
+ <th class="forminp forminp-image">
57
+ <a href="<?php echo $value[ 'href' ]; ?>" target="_blank"><img src="<?php echo $value[ 'img' ]; ?>" /></a>
58
+ </th>
59
+ </tr>
60
+ <?php
61
  }
62
 
63
  /**
89
  foreach ( $email_templates as $email )
90
  $email_select[ $email->id ] = empty( $email->title ) ? ucfirst( $email->id ) : ucfirst( $email->title );
91
 
92
+ $settings = apply_filters( 'woocommerce_germanized_settings', array(
93
 
94
  array( 'title' => __( 'General', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'general_options' ),
95
 
138
 
139
  array( 'type' => 'sectionend', 'id' => 'general_options' ),
140
 
141
+ array( 'title' => __( 'Contract', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'contract_options', 'desc' => '<div class="notice inline notice-warning"><p>' . sprintf( __( '%sUpgrade to %spro%s%s to unlock this feature and get premium support.', 'woocommerce-germanized' ), '<a href="https://vendidero.de/woocommerce-germanized" class="button">', '<span class="wc-gzd-pro">', '</span>', '</a>' ) . '</p></div>' ),
142
+
143
+ array(
144
+ 'title' => '',
145
+ 'id' => 'woocommerce_gzdp_contract_after_confirmation',
146
+ 'img' => WC_Germanized()->plugin_url() . '/assets/images/pro/settings-inline-contract.png',
147
+ 'href' => 'https://vendidero.de/woocommerce-germanized#contract',
148
+ 'type' => 'image',
149
+ ),
150
+
151
+ array( 'type' => 'sectionend', 'id' => 'contract_options' ),
152
+
153
  array( 'title' => __( 'Legal Pages', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'legal_pages_options' ),
154
 
155
  array(
397
 
398
  array( 'type' => 'sectionend', 'id' => 'virtual_vat_options' ),
399
 
400
+ array( 'title' => _x( 'Invoices', 'invoices', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'invoice_options', 'desc' => '<div class="notice inline notice-warning"><p>' . sprintf( __( '%sUpgrade to %spro%s%s to unlock this feature and get premium support.', 'woocommerce-germanized' ), '<a href="https://vendidero.de/woocommerce-germanized" class="button">', '<span class="wc-gzd-pro">', '</span>', '</a>' ) . '</p></div>' ),
401
+
402
+ array(
403
+ 'title' => '',
404
+ 'id' => 'woocommerce_gzdp_contract_after_confirmation',
405
+ 'img' => WC_Germanized()->plugin_url() . '/assets/images/pro/settings-inline-invoices.png',
406
+ 'href' => 'https://vendidero.de/woocommerce-germanized#accounting',
407
+ 'type' => 'image',
408
+ ),
409
+
410
+ array( 'type' => 'sectionend', 'id' => 'invoice_options' ),
411
+
412
+ array( 'title' => __( 'VAT', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'vat_options', 'desc' => '<div class="notice inline notice-warning"><p>' . sprintf( __( '%sUpgrade to %spro%s%s to unlock this feature and get premium support.', 'woocommerce-germanized' ), '<a href="https://vendidero.de/woocommerce-germanized" class="button">', '<span class="wc-gzd-pro">', '</span>', '</a>' ) . '</p></div>' ),
413
+
414
+ array(
415
+ 'title' => '',
416
+ 'id' => 'woocommerce_gzdp_contract_after_confirmation',
417
+ 'img' => WC_Germanized()->plugin_url() . '/assets/images/pro/settings-inline-vat.png',
418
+ 'href' => 'https://vendidero.de/woocommerce-germanized#vat',
419
+ 'type' => 'image',
420
+ ),
421
+
422
+ array( 'type' => 'sectionend', 'id' => 'vat_options' ),
423
+
424
  ) ); // End general settings
425
+
426
+ return $settings;
427
+
428
  }
429
 
430
  public function get_display_settings() {
559
 
560
  array( 'title' => __( 'Checkout & Cart', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'checkout_options' ),
561
 
562
+ ( version_compare( WC()->version, '2.3', '>=' ) ?
563
+
564
+ array(
565
+ 'title' => __( 'Fallback Mode', 'woocommerce-germanized' ),
566
+ 'desc' => __( 'Enable to make sure default review-order.php is not being overriden by theme.', 'woocommerce-germanized' ),
567
+ 'id' => 'woocommerce_gzd_display_checkout_fallback',
568
+ 'default' => 'no',
569
+ 'type' => 'checkbox',
570
+ 'desc_tip' => __( 'If you are facing problems within your checkout e.g. legally relevant data is not showing (terms, delivery time, unit price etc.) your theme seems to be incompatible (not using default WooCommerce hooks and filters). As a workaround you may use this fallback which ensures default review-order.php is used.', 'woocommerce-germanized' ),
571
+ )
572
+
573
+ : array() ),
574
+
575
  array(
576
  'title' => __( 'Hide taxes estimated', 'woocommerce-germanized' ),
577
  'desc' => __( 'Do you want to hide the "taxes and shipping estimated" text from your cart?', 'woocommerce-germanized' ),
608
  'desc_tip' => __( 'This button may let your customer edit their order before submitting. Some people state that this button should be hidden to avoid legal problems.', 'woocommerce-germanized' ),
609
  ),
610
 
611
+ array(
612
+ 'title' => __( 'Show edit data notice', 'woocommerce-germanized' ),
613
+ 'desc' => __( 'Show a "check-your-entries" notice to the user?', 'woocommerce-germanized' ),
614
+ 'id' => 'woocommerce_gzd_display_checkout_edit_data_notice',
615
+ 'default' => 'no',
616
+ 'type' => 'checkbox',
617
+ 'desc_tip' => __( 'This notice will be added right before the order comments field.', 'woocommerce-germanized' ),
618
+ ),
619
+
620
  array(
621
  'title' => __( 'Checkout Table Color', 'woocommerce-germanized' ),
622
  'id' => 'woocommerce_gzd_display_checkout_table_color',
700
  global $current_section;
701
  $settings = $this->get_settings();
702
  $sidebar = $this->get_sidebar();
 
703
  if ( $this->get_sections() ) {
704
  foreach ( $this->get_sections() as $section => $name ) {
705
  if ( $section == $current_section ) {
706
  $settings = apply_filters( 'woocommerce_gzd_get_settings_' . $section, $this->get_settings() );
707
+ $sidebar = apply_filters( 'woocommerce_gzd_get_sidebar_' . $section, $sidebar );
708
  }
709
  }
710
  }
711
+ include_once( WC_Germanized()->plugin_path() . '/includes/admin/views/html-settings-section.php' );
 
 
 
 
 
 
 
 
712
  }
713
 
714
  public function get_sidebar() {
715
+ ob_start();
716
+ include_once( WC_Germanized()->plugin_path() . '/includes/admin/views/html-settings-sidebar.php' );
717
+ $content = ob_get_clean();
718
+ return $content;
 
 
 
 
 
 
 
 
 
 
719
  }
720
 
721
  /**
739
 
740
  do_action( 'woocommerce_gzd_before_save_section_' . $current_section, $settings );
741
 
742
+ if ( apply_filters( 'wc_germanized_show_settings_' . $current_section, true ) )
743
+ WC_Admin_Settings::save_fields( $settings );
744
 
745
  do_action( 'woocommerce_gzd_after_save_section_' . $current_section, $settings );
746
  }
790
  }
791
  }
792
 
793
+ public function output_premium_section() {
794
+ global $current_section;
795
+ if ( ! isset( $this->premium_sections[ $current_section ] ) )
796
+ return;
797
+ $GLOBALS[ 'hide_save_button' ] = true;
798
+ $section_title = $this->premium_sections[ $current_section ];
799
+ include_once( WC_Germanized()->plugin_path() . '/includes/admin/views/html-settings-pro.php' );
800
+ }
801
+
802
+ public function set_premium_sections( $sections ) {
803
+ return $sections + $this->premium_sections;
804
+ }
805
+
806
+ public function get_premium_settings() {
807
+ return array();
808
+ }
809
+
810
+ public function get_premium_sidebar() {
811
+ return '';
812
+ }
813
+
814
  }
815
 
816
  endif;
includes/admin/views/html-notice-theme-incompatibility.php CHANGED
@@ -12,7 +12,7 @@ $dismiss_url = add_query_arg( 'notice', 'wc-gzd-hide-theme-notice', add_query_ar
12
 
13
  <div class="error fade">
14
  <h3><?php _e( 'Theme incompatibility found', 'woocommerce-germanized' ); ?></h3>
15
- <p><?php printf( __( 'It seems like your theme tries to overwrite legally relevant templates. Please review your checkout page. Some things might look weird because WooCommerce Germanized had to stop template overriding for legal purposes (Critical templates: %s). See <a href="%s" target="_blank">making your theme compatible</a> or check out our Theme <a href="%s" target="_blank">VendiPro</a> for 100&#37; compatibility.', 'woocommerce-germanized' ), implode( WC_germanized()->get_critical_templates(), ', ' ), 'http://vendidero.de/dokument/woocommerce-germanized-theme-kompatibilitaet', 'http://vendidero.de/vendipro' ); ?></p>
16
  <p class="alignleft wc-gzd-button-wrapper">
17
  <a class="button button-primary" href="http://vendidero.de/vendipro" target="_blank"><?php _e( 'Get VendiPro now', 'woocommerce-germanized' ); ?></a>
18
  </p>
12
 
13
  <div class="error fade">
14
  <h3><?php _e( 'Theme incompatibility found', 'woocommerce-germanized' ); ?></h3>
15
+ <p><?php printf( __( 'It seems like your theme tries to overwrite legally relevant templates. Please review your checkout page. Some things might look weird because WooCommerce Germanized had to stop template overriding for legal purposes (Critical templates: %s). See <a href="%s" target="_blank">making your theme compatible</a> or check out our Theme <a href="%s" target="_blank">VendiPro</a> for 100&#37; compatibility.', 'woocommerce-germanized' ), implode( WC_germanized()->get_critical_templates(), ', ' ), 'https://vendidero.de/dokument/woocommerce-germanized-theme-kompatibilitaet', 'https://vendidero.de/vendipro' ); ?></p>
16
  <p class="alignleft wc-gzd-button-wrapper">
17
  <a class="button button-primary" href="http://vendidero.de/vendipro" target="_blank"><?php _e( 'Get VendiPro now', 'woocommerce-germanized' ); ?></a>
18
  </p>
includes/admin/views/html-notice-theme-not-ready.php CHANGED
@@ -12,7 +12,7 @@ $dismiss_url = add_query_arg( 'notice', 'wc-gzd-hide-theme-notice', add_query_ar
12
 
13
  <div class="error fade">
14
  <h3><?php _e( 'Theme not yet ready', 'woocommerce-germanized' ); ?></h3>
15
- <p><?php printf( __( 'It seems like your theme is not yet ready for WooCommerce Germanized. Please check your theme\'s styles. Some things might look weird - WooCommerce Germanized can only offer basic styles. See <a href="%s" target="_blank">making your theme compatible</a> or check out our Theme <a href="%s" target="_blank">VendiPro</a> for 100&#37; compatibility.', 'woocommerce-germanized' ), 'http://vendidero.de/dokument/woocommerce-germanized-theme-kompatibilitaet', 'http://vendidero.de/vendipro' ); ?></p>
16
  <p class="alignleft wc-gzd-button-wrapper">
17
  <a class="button button-primary" href="http://vendidero.de/vendipro" target="_blank"><?php _e( 'Get VendiPro now', 'woocommerce-germanized' ); ?></a>
18
  </p>
12
 
13
  <div class="error fade">
14
  <h3><?php _e( 'Theme not yet ready', 'woocommerce-germanized' ); ?></h3>
15
+ <p><?php printf( __( 'It seems like your theme is not yet ready for WooCommerce Germanized. Please check your theme\'s styles. Some things might look weird - WooCommerce Germanized can only offer basic styles. See <a href="%s" target="_blank">making your theme compatible</a> or check out our Theme <a href="%s" target="_blank">VendiPro</a> for 100&#37; compatibility.', 'woocommerce-germanized' ), 'https://vendidero.de/dokument/woocommerce-germanized-theme-kompatibilitaet', 'https://vendidero.de/vendipro' ); ?></p>
16
  <p class="alignleft wc-gzd-button-wrapper">
17
  <a class="button button-primary" href="http://vendidero.de/vendipro" target="_blank"><?php _e( 'Get VendiPro now', 'woocommerce-germanized' ); ?></a>
18
  </p>
includes/admin/views/html-settings-pro.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Admin View: Settings pro
4
+ */
5
+
6
+ if ( ! defined( 'ABSPATH' ) ) {
7
+ exit; // Exit if accessed directly
8
+ }
9
+
10
+ global $current_section;
11
+ ?>
12
+ <style>
13
+ .wc-gzd-admin-settings {
14
+ border-right: none;
15
+ }
16
+ </style>
17
+
18
+ <h3><?php echo $section_title; ?></h3>
19
+
20
+ <div class="wc-gzd-premium">
21
+ <div class="wc-gzd-premium-overlay-wrapper">
22
+ <div class="wc-gzd-premium-overlay notice notice-warning inline">
23
+ <h3><?php _e( 'Get WooCommerce Germanized Pro to unlock', 'woocommerce-germanized' );?></h3>
24
+ <p><?php _e( 'Enjoy even more professional features such as invoices, legal text generators, B2B VAT settings and premium support!', 'woocommerce-germanized' );?></p>
25
+ <p><a class="button button-primary" href="https://vendidero.de/woocommerce-germanized" target="_blank"><?php _e( 'Upgrade now', 'woocommerce-germanized' ); ?></a></p>
26
+ </div>
27
+ <a href="https://vendidero.de/woocommerce-germanized" target="_blank">
28
+ <img src="<?php echo WC_Germanized()->plugin_url();?>/assets/images/pro/settings-<?php echo $current_section;?>.png" />
29
+ </a>
30
+ </div>
31
+ </div>
includes/admin/views/html-settings-section.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Admin View: Settings section
4
+ */
5
+
6
+ if ( ! defined( 'ABSPATH' ) ) {
7
+ exit; // Exit if accessed directly
8
+ }
9
+ ?>
10
+
11
+ <div class="wc-gzd-admin-settings wc-gzd-admin-settings-<?php echo sanitize_title( $current_section ); ?> <?php echo apply_filters( 'woocommerce_gzd_settings_wrapper_' . $current_section, '' ); ?>">
12
+ <?php do_action( 'wc_germanized_settings_section_before_' . sanitize_title( $current_section ) ); ?>
13
+ <?php if ( apply_filters( 'wc_germanized_show_settings_' . sanitize_title( $current_section ), true ) ) : ?>
14
+ <?php WC_Admin_Settings::output_fields( $settings ); ?>
15
+ <?php endif; ?>
16
+ <?php do_action( 'wc_germanized_settings_section_after_' . sanitize_title( $current_section ) ); ?>
17
+ </div>
18
+
19
+ <?php echo $sidebar; ?>
includes/admin/views/html-settings-sidebar.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Admin View: Settings default sidebar
4
+ */
5
+
6
+ if ( ! defined( 'ABSPATH' ) ) {
7
+ exit; // Exit if accessed directly
8
+ }
9
+
10
+ ?>
11
+ <div class="wc-gzd-admin-settings-sidebar">
12
+ <h3>VendiPro - Typisch deutsch!</h3>
13
+ <div class="wc-gzd-sidebar-img">
14
+ <a href="https://vendidero.de/vendipro" target="_blank"><img class="browser" src="<?php echo WC_germanized()->plugin_url(); ?>/assets/images/vendidero.jpg" /></a>
15
+ </div>
16
+ <p>VendiPro ist ein für den deutschen Markt entwickeltes WooCommerce Theme. Mit VendiPro sind alle WooCommerce und WooCommerce Germanized Einstellungen auch optisch perfekt auf den deutschen Markt abgestimmt.</p>
17
+ <div class="wc-gzd-sidebar-action">
18
+ <a class="button button-primary wc-gzd-button" href="https://vendidero.de/vendipro" target="_blank">jetzt entdecken</a>
19
+ <span class="small">ab 49,95 € inkl. Mwst. und 1 Jahr Updates & Support!</span>
20
+ </div>
21
+ </div>
includes/class-wc-gzd-ajax.php CHANGED
@@ -19,6 +19,7 @@ class WC_GZD_AJAX {
19
  public static function init() {
20
  $ajax_events = array(
21
  'gzd_revocation' => true,
 
22
  );
23
  foreach ( $ajax_events as $ajax_event => $nopriv ) {
24
  add_action( 'wp_ajax_woocommerce_' . $ajax_event, array( __CLASS__, $ajax_event ) );
@@ -28,6 +29,37 @@ class WC_GZD_AJAX {
28
  }
29
  }
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  /**
32
  * Checks revocation form and sends Email to customer and Admin
33
  */
19
  public static function init() {
20
  $ajax_events = array(
21
  'gzd_revocation' => true,
22
+ 'gzd_json_search_delivery_time' => false,
23
  );
24
  foreach ( $ajax_events as $ajax_event => $nopriv ) {
25
  add_action( 'wp_ajax_woocommerce_' . $ajax_event, array( __CLASS__, $ajax_event ) );
29
  }
30
  }
31
 
32
+ public static function gzd_json_search_delivery_time() {
33
+ ob_start();
34
+
35
+ check_ajax_referer( 'search-products', 'security' );
36
+ $term = (string) wc_clean( stripslashes( $_GET['term'] ) );
37
+ $terms = array();
38
+
39
+ if ( empty( $term ) )
40
+ die();
41
+
42
+ $args = array(
43
+ 'hide_empty' => false,
44
+ );
45
+
46
+ if ( is_numeric( $term ) ) {
47
+ $args[ 'include' ] = array( absint( $term ) );
48
+ } else {
49
+ $args[ 'name__like' ] = (string) $term;
50
+ }
51
+
52
+ $query = get_terms( 'product_delivery_time', $args );
53
+ if ( ! empty( $query ) ) {
54
+ foreach ( $query as $term ) {
55
+ $terms[ $term->term_id ] = rawurldecode( $term->name );
56
+ }
57
+ } else {
58
+ $terms[ rawurldecode( $term ) ] = rawurldecode( sprintf( __( "%s [new]", "woocommerce-germanized" ), $term ) );
59
+ }
60
+ wp_send_json( $terms );
61
+ }
62
+
63
  /**
64
  * Checks revocation form and sends Email to customer and Admin
65
  */
includes/class-wc-gzd-cart.php CHANGED
@@ -335,7 +335,7 @@ class WC_GZD_Cart extends WC_Cart {
335
  public function is_virtual_taxable() {
336
  if ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) != 'yes' )
337
  return false;
338
- if ( ( ! empty( WC()->customer ) ) && ( is_checkout() || defined('WOOCOMMERCE_CHECKOUT') ) ) {
339
  $taxable_address = WC()->customer->get_taxable_address();
340
  $base_country = WC()->countries->get_base_country();
341
  if ( isset( $taxable_address[0] ) && $taxable_address[0] != $base_country && in_array( $taxable_address[0], WC()->countries->get_european_union_countries() ) )
335
  public function is_virtual_taxable() {
336
  if ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) != 'yes' )
337
  return false;
338
+ if ( ( ! empty( WC()->customer ) ) ) {
339
  $taxable_address = WC()->customer->get_taxable_address();
340
  $base_country = WC()->countries->get_base_country();
341
  if ( isset( $taxable_address[0] ) && $taxable_address[0] != $base_country && in_array( $taxable_address[0], WC()->countries->get_european_union_countries() ) )
includes/class-wc-gzd-checkout.php CHANGED
@@ -45,8 +45,8 @@ class WC_GZD_Checkout {
45
  add_filter( 'woocommerce_order_formatted_shipping_address', array( $this, 'set_formatted_shipping_address' ), 0, 2 );
46
  add_filter( 'woocommerce_formatted_address_replacements', array( $this, 'set_formatted_address' ), 0, 2 );
47
  // Add item desc to order
48
- add_action( 'woocommerce_order_add_product', array( $this, 'set_item_desc_order_meta' ), 0, 5 );
49
- add_filter( 'woocommerce_hidden_order_itemmeta', array( $this, 'set_item_desc_order_meta_hidden' ), 0 );
50
  // Deactivate checkout shipping selection
51
  add_action( 'woocommerce_review_order_before_shipping', array( $this, 'remove_shipping_rates' ), 0 );
52
  // Add better fee taxation
@@ -159,8 +159,10 @@ class WC_GZD_Checkout {
159
  * @param int $qty
160
  * @param array $args
161
  */
162
- public function set_item_desc_order_meta( $order_id, $item_id, $product, $qty, $args ) {
163
- wc_add_order_item_meta( $item_id, '_product_desc', $product->gzd_product->get_mini_desc() );
 
 
164
  }
165
 
166
  /**
@@ -168,8 +170,10 @@ class WC_GZD_Checkout {
168
  *
169
  * @param array $metas
170
  */
171
- public function set_item_desc_order_meta_hidden( $metas ) {
172
- array_push( $metas, '_product_desc' );
 
 
173
  return $metas;
174
  }
175
 
45
  add_filter( 'woocommerce_order_formatted_shipping_address', array( $this, 'set_formatted_shipping_address' ), 0, 2 );
46
  add_filter( 'woocommerce_formatted_address_replacements', array( $this, 'set_formatted_address' ), 0, 2 );
47
  // Add item desc to order
48
+ add_action( 'woocommerce_order_add_product', array( $this, 'set_order_meta' ), 0, 5 );
49
+ add_filter( 'woocommerce_hidden_order_itemmeta', array( $this, 'set_order_meta_hidden' ), 0 );
50
  // Deactivate checkout shipping selection
51
  add_action( 'woocommerce_review_order_before_shipping', array( $this, 'remove_shipping_rates' ), 0 );
52
  // Add better fee taxation
159
  * @param int $qty
160
  * @param array $args
161
  */
162
+ public function set_order_meta( $order_id, $item_id, $product, $qty, $args ) {
163
+ wc_add_order_item_meta( $item_id, '_delivery_time', $product->gzd_product->get_delivery_time_html() );
164
+ wc_add_order_item_meta( $item_id, '_item_desc', $product->gzd_product->get_mini_desc() );
165
+ wc_add_order_item_meta( $item_id, '_unit_price', $product->gzd_product->get_unit_html( false ) );
166
  }
167
 
168
  /**
170
  *
171
  * @param array $metas
172
  */
173
+ public function set_order_meta_hidden( $metas ) {
174
+ array_push( $metas, '_item_desc' );
175
+ array_push( $metas, '_delivery_time' );
176
+ array_push( $metas, '_unit_price' );
177
  return $metas;
178
  }
179
 
includes/class-wc-gzd-dependencies.php ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) )
4
+ exit;
5
+
6
+ class WC_GZD_Dependencies {
7
+
8
+ /**
9
+ * Single instance of WooCommerce Germanized Main Class
10
+ *
11
+ * @var object
12
+ */
13
+ protected static $_instance = null;
14
+
15
+ public $loadable = true;
16
+
17
+ public $plugins = array();
18
+
19
+ public static function instance() {
20
+ if ( is_null( self::$_instance ) ) {
21
+ self::$_instance = new self();
22
+ }
23
+ return self::$_instance;
24
+ }
25
+
26
+ /**
27
+ * Cloning is forbidden.
28
+ *
29
+ * @since 1.0
30
+ */
31
+ public function __clone() {
32
+ _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'woocommerce-germanized-pro' ), '1.0' );
33
+ }
34
+
35
+ /**
36
+ * Unserializing instances of this class is forbidden.
37
+ *
38
+ * @since 1.0
39
+ */
40
+ public function __wakeup() {
41
+ _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'woocommerce-germanized-pro' ), '1.0' );
42
+ }
43
+
44
+ public function __construct() {
45
+
46
+ $this->plugins = (array) get_option( 'active_plugins', array() );
47
+ if ( is_multisite() )
48
+ $this->plugins = array_merge( $this->plugins, get_site_option( 'active_sitewide_plugins', array() ) );
49
+
50
+ if ( ! $this->is_woocommerce_activated() )
51
+ $this->loadable = false;
52
+
53
+ }
54
+
55
+ public function get_plugin_version( $plugin_slug ) {
56
+ return get_option( $plugin_slug . '_version' );
57
+ }
58
+
59
+ public function is_plugin_activated( $plugin ) {
60
+ return in_array( $plugin, $this->plugins ) || array_key_exists( $plugin, $this->plugins );
61
+ }
62
+
63
+ /**
64
+ * Checks if WooCommerce is activated
65
+ *
66
+ * @return boolean true if WooCommerce is activated
67
+ */
68
+ public function is_woocommerce_activated() {
69
+ return $this->is_plugin_activated( 'woocommerce/woocommerce.php' );
70
+ }
71
+
72
+ public function is_wpml_activated() {
73
+ return $this->is_plugin_activated( 'sitepress-multilingual-cms/sitepress.php' );
74
+ }
75
+
76
+ public function is_loadable() {
77
+ return $this->loadable;
78
+ }
79
+
80
+ }
81
+
82
+ WC_GZD_Dependencies::instance();
includes/class-wc-gzd-emails.php CHANGED
@@ -36,8 +36,8 @@ class WC_GZD_Emails {
36
  remove_action( 'woocommerce_email_footer', array( WC()->mailer(), 'email_footer' ) );
37
  add_action( 'woocommerce_email_footer', array( $this, 'add_template_footers' ), 0 );
38
  add_action( 'woocommerce_email_footer', array( WC()->mailer(), 'email_footer' ), 1 );
39
-
40
- add_action( 'woocommerce_order_item_name', array( $this, 'order_item_desc' ), 0, 2 );
41
 
42
  $mails = WC()->mailer()->get_emails();
43
 
@@ -46,6 +46,33 @@ class WC_GZD_Emails {
46
  add_action( 'woocommerce_germanized_email_footer_' . $mail->id, array( $this, 'hook_mail_footer' ), 10, 1 );
47
  }
48
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  }
50
 
51
  /**
@@ -74,18 +101,6 @@ class WC_GZD_Emails {
74
  $email->trigger( $customer_id, $user_activation, $user_activation_url, $user_pass, $password_generated );
75
  }
76
 
77
- /**
78
- * Adds product description to order item if available
79
- *
80
- * @param string $item_name product name
81
- * @param array $item
82
- * @return string the item name containing product description if available
83
- */
84
- public function order_item_desc( $item_name, $item ) {
85
- if ( isset( $item[ 'product_desc' ] ) )
86
- $item_name .= '<div class="wc-gzd-item-desc item-desc">' . $item[ 'product_desc' ] . '</div>';
87
- return $item_name;
88
- }
89
  /**
90
  * Hook into Email Footer and attach legal page content if necessary
91
  *
@@ -107,7 +122,7 @@ class WC_GZD_Emails {
107
  * Add global footer Hooks to Email templates
108
  */
109
  public function add_template_footers() {
110
- $type = ( ! empty( $GLOBALS['template_name'] ) ) ? $this->get_email_instance_by_tpl( $GLOBALS['template_name'] ) : '';
111
  if ( ! empty( $type ) )
112
  do_action( 'woocommerce_germanized_email_footer_' . $type->id, $type );
113
  }
36
  remove_action( 'woocommerce_email_footer', array( WC()->mailer(), 'email_footer' ) );
37
  add_action( 'woocommerce_email_footer', array( $this, 'add_template_footers' ), 0 );
38
  add_action( 'woocommerce_email_footer', array( WC()->mailer(), 'email_footer' ), 1 );
39
+
40
+ add_filter( 'woocommerce_email_styles', array( $this, 'styles' ) );
41
 
42
  $mails = WC()->mailer()->get_emails();
43
 
46
  add_action( 'woocommerce_germanized_email_footer_' . $mail->id, array( $this, 'hook_mail_footer' ), 10, 1 );
47
  }
48
  }
49
+
50
+ add_filter( 'woocommerce_order_item_product', array( $this, 'set_order_email_filters' ), 0, 1 );
51
+ }
52
+
53
+ public function set_order_email_filters( $product ) {
54
+ if ( is_wc_endpoint_url( 'order-received' ) )
55
+ return $product;
56
+ // Add order item name actions
57
+ add_action( 'woocommerce_order_item_name', 'wc_gzd_cart_product_delivery_time', 0, 2 );
58
+ add_action( 'woocommerce_order_item_name', 'wc_gzd_cart_product_item_desc', 0, 2 );
59
+ add_filter( 'woocommerce_order_formatted_line_subtotal', 'wc_gzd_cart_product_unit_price', 0, 2 );
60
+ return $product;
61
+ }
62
+
63
+ /**
64
+ * Add email styles
65
+ *
66
+ * @param string $css
67
+ * @return string
68
+ */
69
+ public function styles( $css ) {
70
+ return $css .= '
71
+ .unit-price-cart {
72
+ display: block;
73
+ font-size: 0.9em;
74
+ }
75
+ ';
76
  }
77
 
78
  /**
101
  $email->trigger( $customer_id, $user_activation, $user_activation_url, $user_pass, $password_generated );
102
  }
103
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  /**
105
  * Hook into Email Footer and attach legal page content if necessary
106
  *
122
  * Add global footer Hooks to Email templates
123
  */
124
  public function add_template_footers() {
125
+ $type = ( ! empty( $GLOBALS[ 'wc_gzd_template_name' ] ) ) ? $this->get_email_instance_by_tpl( $GLOBALS[ 'wc_gzd_template_name' ] ) : '';
126
  if ( ! empty( $type ) )
127
  do_action( 'woocommerce_germanized_email_footer_' . $type->id, $type );
128
  }
includes/class-wc-gzd-install.php CHANGED
@@ -92,25 +92,33 @@ class WC_GZD_Install {
92
  * Install WC_Germanized
93
  */
94
  public function install() {
 
95
  // Load Translation for default options
96
  $locale = apply_filters( 'plugin_locale', get_locale() );
97
  $mofile = WC_germanized()->plugin_path() . '/i18n/languages/woocommerce-germanized.mo';
 
98
  if ( file_exists( WC_germanized()->plugin_path() . '/i18n/languages/woocommerce-germanized-' . $locale . '.mo' ) )
99
  $mofile = WC_germanized()->plugin_path() . '/i18n/languages/woocommerce-germanized-' . $locale . '.mo';
 
100
  load_textdomain( 'woocommerce-germanized', $mofile );
101
- if ( ! WC_germanized()->is_woocommerce_activated() ) {
 
102
  deactivate_plugins( WC_GERMANIZED_PLUGIN_FILE );
103
  wp_die( sprintf( __( 'Please install <a href="%s" target="_blank">WooCommerce</a> before installing WooCommerce Germanized. Thank you!', 'woocommerce-germanized' ), 'http://wordpress.org/plugins/woocommerce/' ) );
104
  }
 
105
  $this->create_options();
 
106
  // Register post types
107
  include_once( 'class-wc-gzd-post-types.php' );
108
  WC_GZD_Post_types::register_taxonomies();
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 ) )
@@ -178,6 +186,14 @@ class WC_GZD_Install {
178
  wp_schedule_event( time(), 'daily', 'woocommerce_gzd_ekomi' );
179
  }
180
 
 
 
 
 
 
 
 
 
181
  public static function create_tax_rates() {
182
 
183
  global $wpdb;
92
  * Install WC_Germanized
93
  */
94
  public function install() {
95
+
96
  // Load Translation for default options
97
  $locale = apply_filters( 'plugin_locale', get_locale() );
98
  $mofile = WC_germanized()->plugin_path() . '/i18n/languages/woocommerce-germanized.mo';
99
+
100
  if ( file_exists( WC_germanized()->plugin_path() . '/i18n/languages/woocommerce-germanized-' . $locale . '.mo' ) )
101
  $mofile = WC_germanized()->plugin_path() . '/i18n/languages/woocommerce-germanized-' . $locale . '.mo';
102
+
103
  load_textdomain( 'woocommerce-germanized', $mofile );
104
+
105
+ if ( ! WC_GZD_Dependencies::instance()->is_woocommerce_activated() ) {
106
  deactivate_plugins( WC_GERMANIZED_PLUGIN_FILE );
107
  wp_die( sprintf( __( 'Please install <a href="%s" target="_blank">WooCommerce</a> before installing WooCommerce Germanized. Thank you!', 'woocommerce-germanized' ), 'http://wordpress.org/plugins/woocommerce/' ) );
108
  }
109
+
110
  $this->create_options();
111
+
112
  // Register post types
113
  include_once( 'class-wc-gzd-post-types.php' );
114
  WC_GZD_Post_types::register_taxonomies();
115
 
116
  $this->create_cron_jobs();
117
+ $this->create_units();
118
 
119
  // Virtual Tax Classes
120
  $tax_classes = array_filter( array_map( 'trim', explode( "\n", get_option('woocommerce_tax_classes' ) ) ) );
121
+
122
  if ( ! in_array( 'Virtual Rate', $tax_classes ) || ! in_array( 'Virtual Reduced Rate', $tax_classes ) ) {
123
  update_option( '_wc_gzd_needs_pages', 1 );
124
  if ( ! in_array( 'Virtual Rate', $tax_classes ) )
186
  wp_schedule_event( time(), 'daily', 'woocommerce_gzd_ekomi' );
187
  }
188
 
189
+ private function create_units() {
190
+ $units = include_once( WC_Germanized()->plugin_path() . '/i18n/units.php' );
191
+ if ( ! empty( $units ) ) {
192
+ foreach ( $units as $slug => $unit )
193
+ wp_insert_term( $unit, 'product_unit', array( 'slug' => $slug ) );
194
+ }
195
+ }
196
+
197
  public static function create_tax_rates() {
198
 
199
  global $wpdb;
includes/class-wc-gzd-payment-gateways.php CHANGED
@@ -2,15 +2,15 @@
2
  /**
3
  * WooCommerce Payment Gateways class
4
  *
5
- * Loads payment gateways via hooks for use in the store.
6
  *
7
- * @class WC_Payment_Gateways
8
- * @version 2.2.0
9
- * @package WooCommerce/Classes/Payment
10
  * @category Class
11
- * @author WooThemes
12
  */
13
- class WC_GZD_Payment_Gateways extends WC_Payment_Gateways {
 
 
14
 
15
  public static function instance() {
16
  if ( is_null( self::$_instance ) )
@@ -19,17 +19,108 @@ class WC_GZD_Payment_Gateways extends WC_Payment_Gateways {
19
  }
20
 
21
  public function __construct() {
22
- $this->init();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  }
24
 
25
- public function init() {
26
- parent::init();
27
- if ( ! empty( $this->payment_gateways ) ) {
28
- foreach ( $this->payment_gateways as $gateway ) {
29
- $gateway->parent = new WC_GZD_Payment_Gateway( $gateway );
 
 
 
30
  }
31
  }
32
- do_action( 'woocommerce_gzd_payment_gateways_loaded' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  }
34
 
35
  }
 
 
2
  /**
3
  * WooCommerce Payment Gateways class
4
  *
5
+ * Loads hooks for payment gateways
6
  *
7
+ * @class WC_GZD_Payment_Gateways
 
 
8
  * @category Class
9
+ * @author vendidero
10
  */
11
+ class WC_GZD_Payment_Gateways {
12
+
13
+ protected static $_instance = null;
14
 
15
  public static function instance() {
16
  if ( is_null( self::$_instance ) )
19
  }
20
 
21
  public function __construct() {
22
+ add_action( 'admin_init', array( $this, 'init_fields' ) );
23
+ add_action( 'woocommerce_calculate_totals', array( $this, 'checkout' ) );
24
+ add_action( 'woocommerce_cart_calculate_fees', array( $this, 'init_fee' ), 0 );
25
+ }
26
+
27
+ /**
28
+ * Set default order button text instead of the button text defined by each payment gateway.
29
+ * Can be overriden by setting force_order_button_text within payment gateway class
30
+ * Manipulate payment gateway description if has a fee and init gateway title filter
31
+ */
32
+ public function checkout() {
33
+ $gateways = WC()->payment_gateways->get_available_payment_gateways();
34
+ foreach( $gateways as $gateway ) {
35
+ if ( ! isset( $gateway->force_order_button_text ) || ! $gateway->force_order_button_text )
36
+ $gateway->order_button_text = __( get_option( 'woocommerce_gzd_order_submit_btn_text' ), 'woocommerce-germanized' );
37
+ if ( $gateway->get_option( 'fee' ) ) {
38
+ add_filter( 'woocommerce_gateway_title', array( $this, 'set_title' ), 0, 2 );
39
+ $gateway->description .= ' ' . sprintf( __( 'Plus %s payment charge.', 'woocommerce-germanized' ), wc_price( $gateway->get_option( 'fee' ) ) );
40
+ }
41
+ }
42
+ }
43
+
44
+ /**
45
+ * Manipualte payment gateway title
46
+ *
47
+ * @param string $title
48
+ * @param string $id gateway id
49
+ */
50
+ public function set_title( $title, $id ) {
51
+ $gateways = WC()->payment_gateways->get_available_payment_gateways();
52
+ foreach ( $gateways as $gateway ) {
53
+ if ( $gateway->id != $id )
54
+ continue;
55
+ $title = $gateway->title;
56
+ if ( $gateway->get_option( 'fee' ) && ( is_checkout() || ( defined( 'DOING_AJAX' ) && isset( $_POST[ 'action' ] ) && $_POST[ 'action' ] == 'woocommerce_update_order_review' ) ) )
57
+ $title = $title . ' <span class="small">(' . sprintf( __( 'plus %s payment charge', 'woocommerce-germanized' ), wc_price( $gateway->get_option( 'fee' ) ) ) . ')</span>';
58
+ return $title;
59
+ }
60
  }
61
 
62
+ /**
63
+ * Dynamically set filter to show additional fields
64
+ */
65
+ public function init_fields() {
66
+ $gateways = WC()->payment_gateways->payment_gateways;
67
+ if ( ! empty( $gateways ) ) {
68
+ foreach ( $gateways as $key => $gateway ) {
69
+ add_filter( 'woocommerce_settings_api_form_fields_' . $gateway->id, array( $this, "set_fields" ) );
70
  }
71
  }
72
+ }
73
+
74
+ /**
75
+ * Set additional payment gateway admin fields
76
+ *
77
+ * @param array $fields
78
+ */
79
+ public function set_fields( $fields ) {
80
+ $fields[ 'fee' ] = array(
81
+ 'title' => __( 'Fee', 'woocommerce-germanized' ),
82
+ 'type' => 'decimal',
83
+ 'description' => __( 'This fee is being added if customer selects payment method within checkout.', 'woocommerce-germanized' ),
84
+ 'default' => 0,
85
+ 'desc_tip' => true,
86
+ );
87
+ $fields[ 'fee_is_taxable' ] = array(
88
+ 'title' => __( 'Fee is taxable?', 'woocommerce-germanized' ),
89
+ 'type' => 'checkbox',
90
+ 'label' => __( 'Check if fee is taxable.', 'woocommerce-germanized' ),
91
+ 'default' => 'no',
92
+ );
93
+ return $fields;
94
+ }
95
+
96
+ /**
97
+ * Update fee for cart if feeable gateway has been selected as payment method
98
+ */
99
+ public function init_fee() {
100
+ $gateways = WC()->payment_gateways()->get_available_payment_gateways();
101
+ if ( ! ( $key = WC()->session->get('chosen_payment_method') ) || ! isset( $gateways[ $key ] ) )
102
+ return;
103
+ $gateway = $gateways[ $key ];
104
+ if ( $gateway->get_option( 'fee' ) )
105
+ $this->set_fee( $gateway );
106
+ }
107
+
108
+ /**
109
+ * Sets fee for a specific gateway
110
+ *
111
+ * @param object $gateway
112
+ */
113
+ public function set_fee( $gateway ) {
114
+ $is_taxable = ( $gateway->get_option( 'fee_is_taxable', 'no' ) == 'no' ? false : true );
115
+ $fee = $gateway->get_option( 'fee' );
116
+ if ( $is_taxable ) {
117
+ $tax_rates = WC_Tax::get_rates();
118
+ $fee_taxes = WC_Tax::calc_tax( $fee, $tax_rates, true );
119
+ $fee = $fee - array_sum( $fee_taxes );
120
+ }
121
+ WC()->cart->add_fee( __( 'Payment charge', 'woocommerce-germanized' ), $fee, $is_taxable );
122
  }
123
 
124
  }
125
+
126
+ return WC_GZD_Payment_Gateways::instance();
includes/class-wc-gzd-post-types.php CHANGED
@@ -24,6 +24,7 @@ class WC_GZD_Post_Types {
24
  * Register Delivery Time Taxonomy
25
  */
26
  public static function register_taxonomies() {
 
27
  register_taxonomy( 'product_delivery_time',
28
  apply_filters( 'woocommerce_germanized_taxonomy_objects_product_delivery_time', array( 'product' ) ),
29
  apply_filters( 'woocommerce_germanized_taxonomy_args_product_delivery_time', array(
@@ -53,6 +54,36 @@ class WC_GZD_Post_Types {
53
  'rewrite' => false,
54
  ) )
55
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  }
57
  }
58
 
24
  * Register Delivery Time Taxonomy
25
  */
26
  public static function register_taxonomies() {
27
+ // Delivery time
28
  register_taxonomy( 'product_delivery_time',
29
  apply_filters( 'woocommerce_germanized_taxonomy_objects_product_delivery_time', array( 'product' ) ),
30
  apply_filters( 'woocommerce_germanized_taxonomy_args_product_delivery_time', array(
54
  'rewrite' => false,
55
  ) )
56
  );
57
+ // Units
58
+ register_taxonomy( 'product_unit',
59
+ apply_filters( 'woocommerce_germanized_taxonomy_objects_product_unit', array( 'product' ) ),
60
+ apply_filters( 'woocommerce_germanized_taxonomy_args_product_unit', array(
61
+ 'hierarchical' => false,
62
+ 'update_count_callback' => '_wc_term_recount',
63
+ 'label' => __( 'Units', 'woocommerce-germanized' ),
64
+ 'labels' => array(
65
+ 'name' => __( 'Units', 'woocommerce-germanized' ),
66
+ 'singular_name' => __( 'Unit', 'woocommerce-germanized' ),
67
+ 'menu_name' => _x( 'Units', 'Admin menu name', 'woocommerce-germanized' ),
68
+ 'search_items' => __( 'Search Units', 'woocommerce-germanized' ),
69
+ 'all_items' => __( 'All Units', 'woocommerce-germanized' ),
70
+ 'edit_item' => __( 'Edit Unit', 'woocommerce-germanized' ),
71
+ 'update_item' => __( 'Update Unit', 'woocommerce-germanized' ),
72
+ 'add_new_item' => __( 'Add New Unit', 'woocommerce-germanized' ),
73
+ 'new_item_name' => __( 'New Unit Name', 'woocommerce-germanized' )
74
+ ),
75
+ 'show_ui' => true,
76
+ 'query_var' => true,
77
+ 'public' => false,
78
+ 'capabilities' => array(
79
+ 'manage_terms' => 'manage_product_terms',
80
+ 'edit_terms' => 'edit_product_terms',
81
+ 'delete_terms' => 'delete_product_terms',
82
+ 'assign_terms' => 'assign_product_terms',
83
+ ),
84
+ 'rewrite' => false,
85
+ ) )
86
+ );
87
  }
88
  }
89
 
includes/class-wc-gzd-product-variation.php DELETED
@@ -1,59 +0,0 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) {
3
- exit;
4
- }
5
-
6
- /**
7
- * Product Variation Class
8
- *
9
- * @class WC_GZD_Product_Variation
10
- * @version 1.0.0
11
- * @author Vendidero
12
- */
13
- class WC_GZD_Product_Variation extends WC_Product_Variation {
14
-
15
- /**
16
- * Construct the Product by calling parent constructor and injecting WC_GZD_Product. Add variation level meta keys for delivery time and unit price.
17
- *
18
- * @param int|WC_Product|WP_Post $product Product ID, post object, or product object
19
- */
20
- public function __construct( $product ) {
21
- parent::__construct( $product );
22
- $this->variation_level_meta_data[ 'unit' ] = 0;
23
- $this->variation_level_meta_data[ 'unit_price' ] = 0;
24
- $this->variation_level_meta_data[ 'unit_base' ] = '';
25
- $this->variation_level_meta_data[ 'unit_price_regular' ] = 0;
26
- $this->variation_level_meta_data[ 'unit_price_sale' ] = 0;
27
- $this->variation_level_meta_data[ 'mini_desc' ] = '';
28
- $this->variation_level_meta_data[ 'gzd_product' ] = NULL;
29
- }
30
-
31
- public function get_level_meta_data() {
32
- return $this->variation_level_meta_data;
33
- }
34
-
35
- /**
36
- * Returns the current products delivery time term without falling back to default terms
37
- *
38
- * @return bool|object false returns false if term does not exist otherwise returns term object
39
- */
40
- public function get_delivery_time() {
41
- $terms = wp_get_post_terms( $this->variation_id, 'product_delivery_time' );
42
- if ( is_wp_error( $terms ) || empty( $terms ) )
43
- return false;
44
- return $terms[ 0 ];
45
- }
46
-
47
- /**
48
- * Implement getter to grab delivery time
49
- *
50
- * @param string $key
51
- * @return mixed
52
- */
53
- public function __get( $key ) {
54
- if ( $key == 'delivery_time' )
55
- return $this->get_delivery_time();
56
- return parent::__get( $key );
57
- }
58
-
59
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/class-wc-gzd-revocation.php CHANGED
@@ -31,7 +31,6 @@ class WC_GZD_Revocation {
31
  'order_date' => array(
32
  'type' => 'text',
33
  'label' => _x( 'Order Date', 'revocation-form', 'woocommerce-germanized' ),
34
- 'required' => true,
35
  ),
36
  'sep' => _x( 'Customer Data', 'revocation-form', 'woocommerce-germanized' ),
37
  'address_title' => array(
@@ -71,7 +70,6 @@ class WC_GZD_Revocation {
71
  'address_country' => array(
72
  'type' => 'country',
73
  'label' => _x( 'Country', 'revocation-form', 'woocommerce-germanized' ),
74
- 'required' => true,
75
  'default' => 'DE',
76
  ),
77
  'address_mail' => array(
31
  'order_date' => array(
32
  'type' => 'text',
33
  'label' => _x( 'Order Date', 'revocation-form', 'woocommerce-germanized' ),
 
34
  ),
35
  'sep' => _x( 'Customer Data', 'revocation-form', 'woocommerce-germanized' ),
36
  'address_title' => array(
70
  'address_country' => array(
71
  'type' => 'country',
72
  'label' => _x( 'Country', 'revocation-form', 'woocommerce-germanized' ),
 
73
  'default' => 'DE',
74
  ),
75
  'address_mail' => array(
includes/class-wc-gzd-trusted-shops.php CHANGED
@@ -46,7 +46,7 @@ class WC_GZD_Trusted_Shops {
46
  */
47
  public function __construct() {
48
  $this->partner_id = 'WooCommerceGermanized';
49
- $this->id = get_option( 'woocommerce_gzd_trusted_shops_id' );
50
  $this->gateways = apply_filters( 'woocommerce_trusted_shops_gateways', array(
51
  'prepayment' => _x( 'Prepayment', 'trusted-shops', 'woocommerce-germanized' ),
52
  'cash_on_delivery' => _x( 'Cash On Delivery', 'trusted-shops', 'woocommerce-germanized' ),
@@ -58,7 +58,6 @@ class WC_GZD_Trusted_Shops {
58
  )
59
  );
60
  $this->et_params = array( 'etcc_med' => 'part', 'etcc_cmp' => 'sofpar', 'etcc_par' => 'woo', 'etcc_mon' => 11 );
61
- $this->api_url = 'http://api.trustedshops.com/rest/public/v2/shops/'. $this->id .'/quality.json';
62
  // Schedule
63
  if ( $this->is_rich_snippets_enabled() ) {
64
  add_action( 'woocommerce_gzd_trusted_shops_reviews', array( $this, 'update_reviews' ) );
@@ -80,7 +79,14 @@ class WC_GZD_Trusted_Shops {
80
  add_filter( 'woocommerce_gzd_get_settings_trusted_shops', array( $this, 'get_settings' ) );
81
  add_filter( 'woocommerce_gzd_get_sidebar_trusted_shops', array( $this, 'get_sidebar' ) );
82
  add_action( 'woocommerce_gzd_before_save_section_trusted_shops', array( $this, 'before_save' ), 0, 1 );
83
- add_action( 'woocommerce_gzd_before_save_section_trusted_shops', array( $this, 'after_save' ), 0, 1 );
 
 
 
 
 
 
 
84
  }
85
 
86
  /**
@@ -260,7 +266,7 @@ class WC_GZD_Trusted_Shops {
260
  curl_setopt( $ch, CURLOPT_URL, $this->api_url );
261
  $output = curl_exec( $ch );
262
  $httpcode = curl_getinfo( $ch, CURLINFO_HTTP_CODE );
263
- if ( !curl_errno( $ch ) && $httpcode != 503 )
264
  $success = true;
265
  curl_close( $ch );
266
  if ( $success ) {
@@ -313,8 +319,11 @@ class WC_GZD_Trusted_Shops {
313
  */
314
  public function send_mails() {
315
  $order_query = new WP_Query(
316
- array( 'post_type' => 'shop_order', 'post_status' => array( 'wc-completed' ), 'meta_query' =>
317
- array(
 
 
 
318
  array(
319
  'key' => '_trusted_shops_review_mail_sent',
320
  'compare' => 'NOT EXISTS',
@@ -340,6 +349,87 @@ class WC_GZD_Trusted_Shops {
340
  }
341
  }
342
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
343
  /**
344
  * Get Trusted Shops related Settings for Admin Interface
345
  *
@@ -473,6 +563,11 @@ class WC_GZD_Trusted_Shops {
473
  public function before_save( $settings ) {
474
  if ( !empty( $settings ) ) {
475
  foreach ( $settings as $setting ) {
 
 
 
 
 
476
  if ( $setting[ 'id' ] == 'woocommerce_gzd_trusted_shops_review_widget_enable' ) {
477
  if ( ! empty( $_POST[ 'woocommerce_gzd_trusted_shops_review_widget_enable' ] ) && ! $this->is_review_widget_enabled() )
478
  update_option( '_woocommerce_gzd_trusted_shops_update_reviews', 1 );
@@ -485,10 +580,11 @@ class WC_GZD_Trusted_Shops {
485
  }
486
 
487
  public function after_save( $settings ) {
 
488
  if ( get_option( '_woocommerce_gzd_trusted_shops_update_reviews' ) )
489
- $this->update_reviews();
490
- if ( get_option( '_woocommerce_gzd_trusted_shops_update_snippets' ) )
491
  $this->update_review_widget();
 
 
492
  delete_option( '_woocommerce_gzd_trusted_shops_update_reviews' );
493
  delete_option( '_woocommerce_gzd_trusted_shops_update_snippets' );
494
  }
46
  */
47
  public function __construct() {
48
  $this->partner_id = 'WooCommerceGermanized';
49
+ $this->refresh();
50
  $this->gateways = apply_filters( 'woocommerce_trusted_shops_gateways', array(
51
  'prepayment' => _x( 'Prepayment', 'trusted-shops', 'woocommerce-germanized' ),
52
  'cash_on_delivery' => _x( 'Cash On Delivery', 'trusted-shops', 'woocommerce-germanized' ),
58
  )
59
  );
60
  $this->et_params = array( 'etcc_med' => 'part', 'etcc_cmp' => 'sofpar', 'etcc_par' => 'woo', 'etcc_mon' => 11 );
 
61
  // Schedule
62
  if ( $this->is_rich_snippets_enabled() ) {
63
  add_action( 'woocommerce_gzd_trusted_shops_reviews', array( $this, 'update_reviews' ) );
79
  add_filter( 'woocommerce_gzd_get_settings_trusted_shops', array( $this, 'get_settings' ) );
80
  add_filter( 'woocommerce_gzd_get_sidebar_trusted_shops', array( $this, 'get_sidebar' ) );
81
  add_action( 'woocommerce_gzd_before_save_section_trusted_shops', array( $this, 'before_save' ), 0, 1 );
82
+ add_action( 'woocommerce_gzd_after_save_section_trusted_shops', array( $this, 'after_save' ), 0, 1 );
83
+ add_action( 'wc_germanized_settings_section_after_trusted_shops', array( $this, 'review_collector_export' ), 0 );
84
+ add_action( 'admin_init', array( $this, 'review_collector_export_csv' ) );
85
+ }
86
+
87
+ public function refresh() {
88
+ $this->id = get_option( 'woocommerce_gzd_trusted_shops_id' );
89
+ $this->api_url = 'http://api.trustedshops.com/rest/public/v2/shops/'. $this->id .'/quality.json';
90
  }
91
 
92
  /**
266
  curl_setopt( $ch, CURLOPT_URL, $this->api_url );
267
  $output = curl_exec( $ch );
268
  $httpcode = curl_getinfo( $ch, CURLINFO_HTTP_CODE );
269
+ if ( ! curl_errno( $ch ) && $httpcode != 503 )
270
  $success = true;
271
  curl_close( $ch );
272
  if ( $success ) {
319
  */
320
  public function send_mails() {
321
  $order_query = new WP_Query(
322
+ array(
323
+ 'post_type' => 'shop_order',
324
+ 'post_status' => array( 'wc-completed' ),
325
+ 'showposts' => -1,
326
+ 'meta_query' => array(
327
  array(
328
  'key' => '_trusted_shops_review_mail_sent',
329
  'compare' => 'NOT EXISTS',
349
  }
350
  }
351
 
352
+ public function review_collector_export_csv() {
353
+ if ( ! isset( $_GET[ 'action' ] ) || $_GET[ 'action' ] != 'wc-gzd-trusted-shops-export' || ( isset( $_GET[ 'action' ] ) && $_GET[ 'action' ] == 'wc-gzd-trusted-shops-export' && ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'wc-gzd-trusted-shops-export' ) ) )
354
+ return;
355
+
356
+ $interval_d = ( ( isset( $_GET[ 'interval' ] ) && ! empty( $_GET[ 'interval' ] ) ) ? absint( $_GET[ 'interval' ] ) : 30 );
357
+
358
+ header( 'Content-Description: File Transfer' );
359
+ header( 'Content-Disposition: attachment; filename=review-collector.csv' );
360
+ header( 'Content-Type: text/csv; charset=' . get_option( 'blog_charset' ), true );
361
+ header( 'Cache-Control: no-cache, no-store, must-revalidate' );
362
+ header( 'Pragma: no-cache' );
363
+ header( 'Expires: 0' );
364
+
365
+ $date = date( 'Y-m-d', strtotime( '-' . $interval_d . ' days') );
366
+ $order_query = new WP_Query(
367
+ array(
368
+ 'post_type' => 'shop_order',
369
+ 'post_status' => array( 'wc-completed' ),
370
+ 'showposts' => -1,
371
+ 'date_query' => array(
372
+ array(
373
+ 'after' => $date,
374
+ ),
375
+ ),
376
+ )
377
+ );
378
+
379
+ $data = array();
380
+
381
+ while ( $order_query->have_posts() ) {
382
+ $order_query->next_post();
383
+ $order = wc_get_order( $order_query->post->ID );
384
+ array_push( $data, array( $order->billing_email, $order->id, $order->billing_first_name, $order->billing_last_name ) );
385
+ }
386
+
387
+ $write = $this->prepare_csv_data( $data );
388
+ $df = fopen( "php://output", 'w' );
389
+ foreach ( $write as $row )
390
+ fwrite( $df, $row );
391
+ fclose( $df );
392
+
393
+ exit();
394
+ }
395
+
396
+ public function prepare_csv_data( $row ) {
397
+ foreach ( $row as $key => $row_data ) {
398
+ foreach ( $row_data as $rkey => $rvalue )
399
+ $row[ $key ][ $rkey ] = $this->encode_csv_data( str_replace( '"', '\"', $rvalue ) );
400
+ $row[ $key ] = implode( ",", $row[ $key ] ) . "\n";
401
+ }
402
+ return $row;
403
+ }
404
+
405
+ public function encode_csv_data( $string ) {
406
+ return iconv( get_option( 'blog_charset' ), 'Windows-1252', $string );
407
+ }
408
+
409
+ public function review_collector_export() {
410
+ ?>
411
+ <h3><?php echo _x( 'Review Collector', 'trusted-shops', 'woocommerce-germanized' ); ?></h3>
412
+ <table class="form-table">
413
+ <tbody>
414
+ <tr valign="top">
415
+ <th scope="row" class="titledesc">
416
+ <label for="woocommerce_gzd_trusted_shops_review_collector"><?php echo _x( 'Export customer data', 'trusted-shops', 'woocommerce-germanized' ); ?></label>
417
+ </th>
418
+ <td class="forminp forminp-select">
419
+ <select name="woocommerce_gzd_trusted_shops_review_collector" id="woocommerce_gzd_trusted_shops_review_collector" class="chosen_select">
420
+ <option value="30"><?php echo _x( '30 days', 'trusted-shops', 'woocommerce-germanized' ); ?></option>
421
+ <option value="60"><?php echo _x( '60 days', 'trusted-shops', 'woocommerce-germanized' ); ?></option>
422
+ <option value="90"><?php echo _x( '90 days', 'trusted-shops', 'woocommerce-germanized' ); ?></option>
423
+ </select>
424
+ <p><a class="button button-secondary" id="wc-gzd-trusted-shops-export" data-href-org="<?php echo admin_url( '?action=wc-gzd-trusted-shops-export&_wpnonce=' . wp_create_nonce( 'wc-gzd-trusted-shops-export' ) ); ?>" href="#"><?php echo _x( 'Start export', 'trusted-shops', 'woocommerce-germanized' ); ?></a></p>
425
+ <p class="description"><?php printf( _x( 'Export your customer data and ask consumers for a review with the Trusted Shops <a href="%s" target="_blank">Review Collector</a>.', 'trusted-shops', 'woocommerce-germanized' ), 'https://www.trustedshops.com/tsb2b/sa/ratings/batchRatingRequest.seam?prefLang=' . substr( get_bloginfo( 'language' ), 0, 2 ) ); ?></p>
426
+ </td>
427
+ </tr>
428
+ </tbody>
429
+ </table>
430
+ <?php
431
+ }
432
+
433
  /**
434
  * Get Trusted Shops related Settings for Admin Interface
435
  *
563
  public function before_save( $settings ) {
564
  if ( !empty( $settings ) ) {
565
  foreach ( $settings as $setting ) {
566
+ // Update reviews & snippets if new ts id has been inserted
567
+ if ( isset( $_POST[ 'woocommerce_gzd_trusted_shops_id' ] ) && $_POST[ 'woocommerce_gzd_trusted_shops_id' ] != $this->id ) {
568
+ update_option( '_woocommerce_gzd_trusted_shops_update_snippets', 1 );
569
+ update_option( '_woocommerce_gzd_trusted_shops_update_reviews', 1 );
570
+ }
571
  if ( $setting[ 'id' ] == 'woocommerce_gzd_trusted_shops_review_widget_enable' ) {
572
  if ( ! empty( $_POST[ 'woocommerce_gzd_trusted_shops_review_widget_enable' ] ) && ! $this->is_review_widget_enabled() )
573
  update_option( '_woocommerce_gzd_trusted_shops_update_reviews', 1 );
580
  }
581
 
582
  public function after_save( $settings ) {
583
+ $this->refresh();
584
  if ( get_option( '_woocommerce_gzd_trusted_shops_update_reviews' ) )
 
 
585
  $this->update_review_widget();
586
+ if ( get_option( '_woocommerce_gzd_trusted_shops_update_snippets' ) )
587
+ $this->update_reviews();
588
  delete_option( '_woocommerce_gzd_trusted_shops_update_reviews' );
589
  delete_option( '_woocommerce_gzd_trusted_shops_update_snippets' );
590
  }
includes/class-wc-gzd-units.php CHANGED
@@ -16,13 +16,14 @@ class WC_GZD_Units {
16
  *
17
  * @var array
18
  */
19
- private $units;
 
20
 
21
  /**
22
  * Adds the units from i18n template
23
  */
24
  public function __construct() {
25
- $this->units = apply_filters( 'woocommerce_germanized_units', include WC_germanized()->plugin_path() . '/i18n/units.php' );
26
  }
27
 
28
  /**
@@ -32,17 +33,37 @@ class WC_GZD_Units {
32
  * @return mixed
33
  */
34
  public function __get( $key ) {
35
- if ( ! empty( $this->units[$key] ) )
36
- return $this->units[$key];
 
 
 
 
37
  return false;
38
  }
39
 
 
 
 
 
 
 
 
 
 
 
40
  /**
41
  * Returns mixed units array
42
  *
43
  * @return mixed units as array
44
  */
45
  public function get_units() {
46
- return $this->units;
 
 
 
 
 
 
47
  }
48
  }
16
  *
17
  * @var array
18
  */
19
+ private $units = array();
20
+ private $taxonomy = 'product_unit';
21
 
22
  /**
23
  * Adds the units from i18n template
24
  */
25
  public function __construct() {
26
+
27
  }
28
 
29
  /**
33
  * @return mixed
34
  */
35
  public function __get( $key ) {
36
+ return $this->get_unit( $key );
37
+ }
38
+
39
+ public function get_unit_object( $key, $by = 'slug' ) {
40
+ if ( $term = get_term_by( $by, $key, $this->taxonomy ) )
41
+ return $term;
42
  return false;
43
  }
44
 
45
+ public function get_unit( $key, $by = 'slug' ) {
46
+ if ( $term = $this->get_unit_object( $key, $by ) )
47
+ return $term->name;
48
+ return false;
49
+ }
50
+
51
+ public function get_taxonomy() {
52
+ return $this->taxonomy;
53
+ }
54
+
55
  /**
56
  * Returns mixed units array
57
  *
58
  * @return mixed units as array
59
  */
60
  public function get_units() {
61
+ $list = array();
62
+ $terms = get_terms( $this->taxonomy, array( 'hide_empty' => false ) );
63
+ if ( ! empty( $terms ) ) {
64
+ foreach ( $terms as $term )
65
+ $list[ $term->slug ] = $term->name;
66
+ }
67
+ return $list;
68
  }
69
  }
includes/class-wc-gzd-wpml-helper.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WPML Helper
4
+ *
5
+ * Specific configuration for WPML
6
+ *
7
+ * @class WC_GZD_WPML_Helper
8
+ * @category Class
9
+ * @author vendidero
10
+ */
11
+ class WC_GZD_WPML_Helper {
12
+
13
+ protected static $_instance = null;
14
+
15
+ public static function instance() {
16
+ if ( is_null( self::$_instance ) )
17
+ self::$_instance = new self();
18
+ return self::$_instance;
19
+ }
20
+
21
+ public function __construct() {
22
+ if ( ! $this->is_activated() )
23
+ return;
24
+ $this->filter_page_ids();
25
+ }
26
+
27
+ public function is_activated() {
28
+ return WC_GZD_Dependencies::instance()->is_wpml_activated();
29
+ }
30
+
31
+ public function filter_page_ids() {
32
+ $woo_pages = array(
33
+ 'revocation_page_id',
34
+ 'data_security_page_id',
35
+ 'imprint_page_id',
36
+ 'payment_methods_page_id',
37
+ 'shipping_costs_page_id'
38
+ );
39
+ foreach ( $woo_pages as $page ) {
40
+ add_filter( 'woocommerce_get_' . $page, array( $this, 'translate_page' ) );
41
+ add_filter( 'option_woocommerce_' . $page, array( $this, 'translate_page') );
42
+ }
43
+ }
44
+
45
+ function translate_page( $id ) {
46
+ global $pagenow;
47
+ if( is_admin() && $pagenow == 'options-permalink.php' )
48
+ return $id;
49
+ return icl_object_id( $id, 'page', true );
50
+ }
51
+
52
+ }
53
+
54
+ return WC_GZD_WPML_Helper::instance();
includes/wc-gzd-cart-functions.php CHANGED
@@ -18,17 +18,72 @@ function wc_gzd_get_tax_rate( $tax_rate_id ) {
18
  return false;
19
  }
20
 
21
- function wc_gzd_product_item_desc( $title, $item ) {
22
- $new = $title;
23
- if ( isset( $item[ 'product_id' ] ) ) {
24
- $product_id = ( ! empty( $item[ 'variation_id' ] ) ? $item[ 'variation_id' ] : $item[ 'product_id' ] );
25
- $product = wc_get_product( $product_id );
 
 
 
 
 
 
26
  if ( $product->gzd_product->get_mini_desc() )
27
- $new .= '<div class="wc-gzd-item-desc item-desc">' . $product->gzd_product->get_mini_desc() . '</div>';
28
- }
29
- return $new;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  }
31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  function wc_gzd_get_cart_tax_share( $type = 'shipping' ) {
33
  $cart = WC()->cart->get_cart();
34
  $tax_shares = array();
@@ -36,7 +91,7 @@ function wc_gzd_get_cart_tax_share( $type = 'shipping' ) {
36
  // Get tax classes and tax amounts
37
  if ( ! empty( $cart ) ) {
38
  foreach ( $cart as $key => $item ) {
39
- $_product = $item['data'];
40
  // Dont calculate share if is shipping and product is virtual or vat exception
41
  if ( $type == 'shipping' && $_product->is_virtual() || ( $_product->gzd_product->is_virtual_vat_exception() && $type == 'shipping' ) )
42
  continue;
@@ -53,7 +108,7 @@ function wc_gzd_get_cart_tax_share( $type = 'shipping' ) {
53
  }
54
  if ( ! empty( $tax_shares ) ) {
55
  foreach ( $tax_shares as $key => $class )
56
- $tax_shares[ $key ][ 'share' ] = $class[ 'total' ] / $item_totals;
57
  }
58
  return $tax_shares;
59
  }
@@ -80,6 +135,8 @@ function wc_gzd_cart_totals_order_total_tax_html() {
80
  if ( get_option( 'woocommerce_tax_total_display' ) == 'itemized' ) {
81
  foreach ( WC()->cart->get_tax_totals() as $code => $tax ) {
82
  $rate = wc_gzd_get_tax_rate( $tax->tax_rate_id );
 
 
83
  if ( ! empty( $rate ) && isset( $rate->tax_rate ) )
84
  $tax->rate = $rate->tax_rate;
85
  if ( ! isset( $tax_array[ $tax->rate ] ) )
18
  return false;
19
  }
20
 
21
+ /**
22
+ * Appends product item desc live data (while checkout) or order meta to product name
23
+ *
24
+ * @param string $title
25
+ * @param array $cart_item
26
+ * @return string
27
+ */
28
+ function wc_gzd_cart_product_item_desc( $title, $cart_item ) {
29
+ $product_desc = "";
30
+ if ( isset( $cart_item[ 'data' ] ) ) {
31
+ $product = wc_get_product( $cart_item[ 'data' ] );
32
  if ( $product->gzd_product->get_mini_desc() )
33
+ $product_desc = $product->gzd_product->get_mini_desc();
34
+ } else if ( isset( $cart_item[ 'item_desc' ] ) )
35
+ $product_desc = $cart_item[ 'item_desc' ];
36
+ if ( ! empty( $product_desc ) )
37
+ $title .= '<div class="wc-gzd-item-desc item-desc">' . $product_desc . '</div>';
38
+ return $title;
39
+ }
40
+
41
+ /**
42
+ * Appends delivery time live data (while checkout) or order meta to product name
43
+ *
44
+ * @param string $title
45
+ * @param array $cart_item
46
+ * @return string
47
+ */
48
+ function wc_gzd_cart_product_delivery_time( $title, $cart_item ) {
49
+ $delivery_time = "";
50
+ if ( isset( $cart_item[ 'data' ] ) ) {
51
+ $product = wc_get_product( $cart_item[ 'data' ] );
52
+ if ( $product->gzd_product->get_delivery_time_term() )
53
+ $delivery_time = $product->gzd_product->get_delivery_time_html();
54
+ } else if ( isset( $cart_item[ 'delivery_time' ] ) )
55
+ $delivery_time = $cart_item[ 'delivery_time' ];
56
+ if ( ! empty( $delivery_time ) )
57
+ $title .= '<p class="price-shipping-costs-info">' . $delivery_time . '</p>';
58
+ return $title;
59
  }
60
 
61
+ /**
62
+ * Appends unit price to product price live data (while checkout) or order meta to product price
63
+ *
64
+ * @param string $price
65
+ * @param array $cart_item
66
+ * @return string
67
+ */
68
+ function wc_gzd_cart_product_unit_price( $price, $cart_item ) {
69
+ $unit_price = "";
70
+ if ( isset( $cart_item[ 'data' ] ) ) {
71
+ $product = wc_get_product( $cart_item[ 'data' ] );
72
+ if ( $product->gzd_product->has_unit() )
73
+ $unit_price = $product->gzd_product->get_unit_html( false );
74
+ } else if ( isset( $cart_item[ 'unit_price' ] ) )
75
+ $unit_price = $cart_item[ 'unit_price' ];
76
+ if ( ! empty( $unit_price ) )
77
+ $price .= ' <span class="unit-price unit-price-cart">' . $unit_price . '</span>';
78
+ return $price;
79
+ }
80
+
81
+ /**
82
+ * Calculates tax share for shipping/fees
83
+ *
84
+ * @param string $type
85
+ * @return array
86
+ */
87
  function wc_gzd_get_cart_tax_share( $type = 'shipping' ) {
88
  $cart = WC()->cart->get_cart();
89
  $tax_shares = array();
91
  // Get tax classes and tax amounts
92
  if ( ! empty( $cart ) ) {
93
  foreach ( $cart as $key => $item ) {
94
+ $_product = wc_get_product( $item['data'] );
95
  // Dont calculate share if is shipping and product is virtual or vat exception
96
  if ( $type == 'shipping' && $_product->is_virtual() || ( $_product->gzd_product->is_virtual_vat_exception() && $type == 'shipping' ) )
97
  continue;
108
  }
109
  if ( ! empty( $tax_shares ) ) {
110
  foreach ( $tax_shares as $key => $class )
111
+ $tax_shares[ $key ][ 'share' ] = ( $item_totals > 0 ? $class[ 'total' ] / $item_totals : 0 );
112
  }
113
  return $tax_shares;
114
  }
135
  if ( get_option( 'woocommerce_tax_total_display' ) == 'itemized' ) {
136
  foreach ( WC()->cart->get_tax_totals() as $code => $tax ) {
137
  $rate = wc_gzd_get_tax_rate( $tax->tax_rate_id );
138
+ if ( ! $rate )
139
+ continue;
140
  if ( ! empty( $rate ) && isset( $rate->tax_rate ) )
141
  $tax->rate = $rate->tax_rate;
142
  if ( ! isset( $tax_array[ $tax->rate ] ) )
includes/wc-gzd-core-functions.php CHANGED
@@ -23,4 +23,15 @@ function wc_gzd_format_tax_rate_percentage( $rate, $percent = false ) {
23
 
24
  function wc_gzd_is_customer_activated( $user_id ) {
25
  return ( get_user_meta( $user_id, '_woocommerce_activation' ) ? false : true );
 
 
 
 
 
 
 
 
 
 
 
26
  }
23
 
24
  function wc_gzd_is_customer_activated( $user_id ) {
25
  return ( get_user_meta( $user_id, '_woocommerce_activation' ) ? false : true );
26
+ }
27
+
28
+ function wc_gzd_get_hook_priority( $hook, $function ) {
29
+ global $wp_filter;
30
+ if ( isset( $wp_filter[ $hook ] ) ) {
31
+ foreach ( $wp_filter[ $hook ] as $prio => $func_array ) {
32
+ if ( isset( $func_array[ $function ] ) )
33
+ return $prio;
34
+ }
35
+ }
36
+ return false;
37
  }
includes/wc-gzd-template-functions.php CHANGED
@@ -105,21 +105,6 @@ if ( ! function_exists( 'woocommerce_gzd_template_footer_sale_info' ) ) {
105
  }
106
  }
107
 
108
- if ( ! function_exists( 'woocommerce_gzd_template_cart_product_delivery_time' ) ) {
109
-
110
- /**
111
- * Delivery time within cart
112
- */
113
- function woocommerce_gzd_template_cart_product_delivery_time( $title, $cart_item, $cart_item_key ) {
114
- if ( isset($cart_item["data"]) ) {
115
- $product = $cart_item["data"];
116
- if ( $product->gzd_product->get_delivery_time_term() )
117
- $title .= '<p class="price-shipping-costs-info">' . $product->gzd_product->get_delivery_time_html() . '</p>';
118
- }
119
- return $title;
120
- }
121
- }
122
-
123
  if ( ! function_exists( 'woocommerce_gzd_proceed_to_checkout_fallback' ) ) {
124
 
125
  /**
@@ -142,6 +127,17 @@ if ( ! function_exists( 'woocommerce_gzd_template_cart_total_tax' ) ) {
142
 
143
  }
144
 
 
 
 
 
 
 
 
 
 
 
 
145
  if ( ! function_exists( 'woocommerce_gzd_template_checkout_back_to_cart' ) ) {
146
 
147
  /**
@@ -182,7 +178,7 @@ if ( ! function_exists( 'woocommerce_gzd_digital_checkbox' ) ) {
182
  $is_downloadable = false;
183
  if ( ! empty( $items ) ) {
184
  foreach ( $items as $cart_item_key => $values ) {
185
- $_product = $values['data'];
186
  if ( $_product->is_downloadable() )
187
  $is_downloadable = true;
188
  }
@@ -211,7 +207,7 @@ if ( ! function_exists( 'woocommerce_gzd_checkout_validation' ) ) {
211
  $is_downloadable = false;
212
  if ( ! empty( $items ) && get_option( 'woocommerce_gzd_checkout_legal_digital_checkbox' ) == 'yes' ) {
213
  foreach ( $items as $cart_item_key => $values ) {
214
- $_product = $values['data'];
215
  if ( $_product->is_downloadable() )
216
  $is_downloadable = true;
217
  }
@@ -245,6 +241,55 @@ if ( ! function_exists( 'woocommerce_gzd_template_checkout_set_terms_manually' )
245
 
246
  }
247
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
248
  if ( ! function_exists( 'woocommerce_gzd_template_order_button_text' ) ) {
249
 
250
  /**
@@ -275,6 +320,7 @@ if ( ! function_exists( 'woocommerce_gzd_add_variation_options' ) ) {
275
  function woocommerce_gzd_add_variation_options( $options, $product, $variation ) {
276
  $options[ 'delivery_time' ] = $variation->gzd_product->get_delivery_time_html();
277
  $options[ 'unit_price' ] = $variation->gzd_product->get_unit_html();
 
278
  return $options;
279
  }
280
 
@@ -320,17 +366,6 @@ if ( ! function_exists( 'woocommerce_gzd_template_order_submit' ) ) {
320
 
321
  }
322
 
323
- if ( ! function_exists( 'woocommerce_gzd_template_checkout_review_title' ) ) {
324
-
325
- /**
326
- * Add order review heading
327
- */
328
- function woocommerce_gzd_template_checkout_review_title() { ?>
329
- <h3 id="wc_gzd_order_review_heading"><?php _e( 'Your order', 'woocommerce' ); ?></h3>
330
- <?php }
331
-
332
- }
333
-
334
  if ( ! function_exists( 'woocommerce_gzd_template_set_order_button_remove_filter' ) ) {
335
 
336
  /**
105
  }
106
  }
107
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  if ( ! function_exists( 'woocommerce_gzd_proceed_to_checkout_fallback' ) ) {
109
 
110
  /**
127
 
128
  }
129
 
130
+ if ( ! function_exists( 'woocommerce_gzd_template_checkout_edit_data_notice' ) ) {
131
+
132
+ /**
133
+ * Display edit data notice
134
+ */
135
+ function woocommerce_gzd_template_checkout_edit_data_notice() {
136
+ wc_get_template( 'checkout/edit-data-notice.php' );
137
+ }
138
+
139
+ }
140
+
141
  if ( ! function_exists( 'woocommerce_gzd_template_checkout_back_to_cart' ) ) {
142
 
143
  /**
178
  $is_downloadable = false;
179
  if ( ! empty( $items ) ) {
180
  foreach ( $items as $cart_item_key => $values ) {
181
+ $_product = wc_get_product( $values['data'] );
182
  if ( $_product->is_downloadable() )
183
  $is_downloadable = true;
184
  }
207
  $is_downloadable = false;
208
  if ( ! empty( $items ) && get_option( 'woocommerce_gzd_checkout_legal_digital_checkbox' ) == 'yes' ) {
209
  foreach ( $items as $cart_item_key => $values ) {
210
+ $_product = wc_get_product( $values['data'] );
211
  if ( $_product->is_downloadable() )
212
  $is_downloadable = true;
213
  }
241
 
242
  }
243
 
244
+ if ( ! function_exists( 'woocommerce_gzd_template_checkout_table_content_replacement' ) ) {
245
+
246
+ /**
247
+ * Replaces default review-order.php product table by gzd product table template (checkout/review-order-product-table.php).
248
+ * Adds filter to hide default review order product table output.
249
+ */
250
+ function woocommerce_gzd_template_checkout_table_content_replacement() {
251
+ wc_get_template( 'checkout/review-order-product-table.php' );
252
+ add_filter( 'woocommerce_checkout_cart_item_visible', 'woocommerce_gzd_template_checkout_table_product_hide', PHP_INT_MAX );
253
+ }
254
+
255
+ }
256
+
257
+ if ( ! function_exists( 'woocommerce_gzd_template_checkout_table_product_hide' ) ) {
258
+
259
+ /**
260
+ * Returns false to make sure default review order product table output is suppressed.
261
+ *
262
+ * @return boolean
263
+ */
264
+ function woocommerce_gzd_template_checkout_table_product_hide() {
265
+ return false;
266
+ }
267
+
268
+ }
269
+
270
+ if ( ! function_exists( 'woocommerce_gzd_template_checkout_table_product_hide_filter_removal' ) ) {
271
+
272
+ /**
273
+ * Remove review order product table cart item visibility filter after output has been suppressed.
274
+ */
275
+ function woocommerce_gzd_template_checkout_table_product_hide_filter_removal() {
276
+ remove_filter( 'woocommerce_checkout_cart_item_visible', 'woocommerce_gzd_template_checkout_table_product_hide', PHP_INT_MAX );
277
+ }
278
+
279
+ }
280
+
281
+ if ( ! function_exists( 'woocommerce_gzd_template_checkout_remove_cart_name_filter' ) ) {
282
+
283
+ /**
284
+ * Removes the cart item name filter (using checkout quantity html) if within checkout
285
+ */
286
+ function woocommerce_gzd_template_checkout_remove_cart_name_filter() {
287
+ remove_filter( 'woocommerce_cart_item_name', 'wc_gzd_cart_product_delivery_time', 0, 2 );
288
+ remove_filter( 'woocommerce_cart_item_name', 'wc_gzd_cart_product_item_desc', 0, 2 );
289
+ }
290
+
291
+ }
292
+
293
  if ( ! function_exists( 'woocommerce_gzd_template_order_button_text' ) ) {
294
 
295
  /**
320
  function woocommerce_gzd_add_variation_options( $options, $product, $variation ) {
321
  $options[ 'delivery_time' ] = $variation->gzd_product->get_delivery_time_html();
322
  $options[ 'unit_price' ] = $variation->gzd_product->get_unit_html();
323
+ $options[ 'tax_info' ] = $variation->gzd_product->get_tax_info();
324
  return $options;
325
  }
326
 
366
 
367
  }
368
 
 
 
 
 
 
 
 
 
 
 
 
369
  if ( ! function_exists( 'woocommerce_gzd_template_set_order_button_remove_filter' ) ) {
370
 
371
  /**
includes/wc-gzd-template-hooks.php CHANGED
@@ -9,18 +9,19 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
9
 
10
  /**
11
  * Product Summary Box
 
12
  */
13
- if ( get_option( 'woocommerce_gzd_display_product_detail_unit_price' ) == 'yes' )
14
- add_action( 'woocommerce_single_product_summary', 'woocommerce_gzd_template_single_price_unit', 10 );
15
- if ( get_option( 'woocommerce_gzd_display_product_detail_tax_info' ) == 'yes' || get_option( 'woocommerce_gzd_display_product_detail_shipping_costs' ) == 'yes' )
16
- add_action( 'woocommerce_single_product_summary', 'woocommerce_gzd_template_single_legal_info', 11 );
17
- if ( get_option( 'woocommerce_gzd_display_product_detail_delivery_time' ) == 'yes' )
18
- add_action( 'woocommerce_single_product_summary', 'woocommerce_gzd_template_single_delivery_time_info', 27 );
19
- if ( get_option( 'woocommerce_gzd_small_enterprise' ) == 'yes' ) {
20
- add_action( 'woocommerce_after_cart_totals', 'woocommerce_gzd_template_small_business_info' );
21
- add_action( 'woocommerce_review_order_after_order_total', 'woocommerce_gzd_template_checkout_small_business_info', 25 );
 
22
  }
23
- add_filter( 'woocommerce_available_variation', 'woocommerce_gzd_add_variation_options', 0, 3 );
24
 
25
  /**
26
  * Product Loop Items
@@ -42,20 +43,38 @@ if ( get_option( 'woocommerce_gzd_display_listings_link_details' ) == 'yes' )
42
  * Cart
43
  */
44
  add_action( 'woocommerce_cart_totals_after_order_total', 'woocommerce_gzd_template_cart_total_tax', 1 );
45
- add_action( 'woocommerce_review_order_after_order_total', 'woocommerce_gzd_template_cart_total_tax', 1 );
46
- add_filter( 'woocommerce_cart_item_name', 'woocommerce_gzd_template_cart_product_delivery_time', 0, 3 );
47
- add_filter( 'woocommerce_cart_item_name', 'wc_gzd_product_item_desc', 0, 2 );
 
 
 
 
 
 
 
 
 
48
 
49
  /**
50
  * Checkout
51
  */
52
- if ( version_compare( WC()->version, '2.3', '>=' ) ) {
 
 
 
 
 
 
 
 
 
 
53
  remove_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 10 );
54
  remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
55
  add_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 10 );
56
  add_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 20 );
57
  add_action( 'woocommerce_checkout_order_review', 'woocommerce_gzd_template_order_submit', 21 );
58
- add_action( 'woocommerce_review_order_after_payment', 'woocommerce_gzd_template_checkout_review_title', 1 );
59
  add_action( 'woocommerce_review_order_after_payment', 'woocommerce_gzd_template_checkout_legal', 2 );
60
  add_action( 'woocommerce_review_order_after_payment', 'woocommerce_gzd_template_checkout_set_terms_manually', 3 );
61
  // Temporarily remove order button from payment.php - then add again to show after product table
@@ -64,30 +83,55 @@ if ( version_compare( WC()->version, '2.3', '>=' ) ) {
64
  add_action( 'woocommerce_gzd_review_order_before_submit', 'woocommerce_gzd_template_set_order_button_show_filter', PHP_INT_MAX );
65
  if ( get_option( 'woocommerce_gzd_checkout_legal_digital_checkbox' ) == 'yes' )
66
  add_action( 'woocommerce_review_order_after_payment', 'woocommerce_gzd_digital_checkbox', 4 );
67
- } else {
 
 
 
 
 
 
 
 
 
 
68
  add_action( 'woocommerce_gzd_before_shop_table', 'woocommerce_gzd_template_checkout_legal', 2 );
69
  add_action( 'woocommerce_gzd_before_shop_table', 'woocommerce_gzd_template_checkout_set_terms_manually' );
70
  if ( get_option( 'woocommerce_gzd_checkout_legal_digital_checkbox' ) == 'yes' )
71
  add_action( 'woocommerce_gzd_before_shop_table', 'woocommerce_gzd_digital_checkbox', 1 );
 
 
 
 
 
 
72
  }
 
 
73
  if ( get_option( 'woocommerce_gzd_display_checkout_back_to_cart_button' ) == 'yes' )
74
  add_action( 'woocommerce_review_order_after_cart_contents', 'woocommerce_gzd_template_checkout_back_to_cart' );
75
- add_action( 'woocommerce_review_order_before_payment', 'woocommerce_gzd_template_checkout_payment_title' );
76
- add_filter( 'woocommerce_checkout_show_terms', 'woocommerce_gzd_remove_term_checkbox' );
77
- if ( get_option( 'woocommerce_gzd_trusted_shops_id' ) )
78
- add_action( 'woocommerce_thankyou', 'woocommerce_gzd_template_checkout_thankyou_trusted_shops', 10, 1 );
79
  add_filter( 'woocommerce_order_button_text', 'woocommerce_gzd_template_order_button_text', PHP_INT_MAX );
80
- add_filter( 'woocommerce_pay_order_button_text', 'woocommerce_gzd_template_order_button_text', PHP_INT_MAX );
81
- remove_action( 'woocommerce_order_details_after_order_table', 'woocommerce_order_again_button' );
82
- add_action( 'woocommerce_thankyou_order_received_text', 'woocommerce_gzd_template_order_success_text', 0, 1 );
83
- if ( get_option( 'woocommerce_gzd_hide_order_success_details' ) == 'yes' )
84
- remove_action( 'woocommerce_thankyou', 'woocommerce_order_details_table', 10 );
85
 
86
  /**
87
  * Checkout Validation
88
  */
89
  add_action( 'woocommerce_after_checkout_validation', 'woocommerce_gzd_checkout_validation', 1, 1 );
90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  /**
92
  * Footer
93
  */
9
 
10
  /**
11
  * Product Summary Box
12
+ * Lazyload actions to retrieve custom priorities by themes
13
  */
14
+ add_action( 'woocommerce_before_main_content', 'woocommerce_gzd_single_product_hooks' );
15
+ function woocommerce_gzd_single_product_hooks() {
16
+ $price_prio = ( ( $prio = wc_gzd_get_hook_priority( 'woocommerce_single_product_summary', 'woocommerce_template_single_price' ) ) ? $prio : 10 );
17
+ if ( get_option( 'woocommerce_gzd_display_product_detail_unit_price' ) == 'yes' )
18
+ add_action( 'woocommerce_single_product_summary', 'woocommerce_gzd_template_single_price_unit', $price_prio );
19
+ if ( get_option( 'woocommerce_gzd_display_product_detail_tax_info' ) == 'yes' || get_option( 'woocommerce_gzd_display_product_detail_shipping_costs' ) == 'yes' )
20
+ add_action( 'woocommerce_single_product_summary', 'woocommerce_gzd_template_single_legal_info', $price_prio + 1 );
21
+ if ( get_option( 'woocommerce_gzd_display_product_detail_delivery_time' ) == 'yes' )
22
+ add_action( 'woocommerce_single_product_summary', 'woocommerce_gzd_template_single_delivery_time_info', 27 );
23
+ add_filter( 'woocommerce_available_variation', 'woocommerce_gzd_add_variation_options', 0, 3 );
24
  }
 
25
 
26
  /**
27
  * Product Loop Items
43
  * Cart
44
  */
45
  add_action( 'woocommerce_cart_totals_after_order_total', 'woocommerce_gzd_template_cart_total_tax', 1 );
46
+ add_filter( 'woocommerce_cart_item_price', 'wc_gzd_cart_product_unit_price', 0, 2 );
47
+ add_filter( 'woocommerce_cart_item_subtotal', 'wc_gzd_cart_product_unit_price', 0, 2 );
48
+ // Remove cart item name filter within checkout
49
+ add_action( 'woocommerce_review_order_before_cart_contents', 'woocommerce_gzd_template_checkout_remove_cart_name_filter' );
50
+ // Add item name filter within cart
51
+ add_filter( 'woocommerce_cart_item_name', 'wc_gzd_cart_product_delivery_time', 0, 2 );
52
+ add_filter( 'woocommerce_cart_item_name', 'wc_gzd_cart_product_item_desc', 0, 3 );
53
+ // Small enterprises
54
+ if ( get_option( 'woocommerce_gzd_small_enterprise' ) == 'yes' ) {
55
+ add_action( 'woocommerce_after_cart_totals', 'woocommerce_gzd_template_small_business_info' );
56
+ add_action( 'woocommerce_review_order_after_order_total', 'woocommerce_gzd_template_checkout_small_business_info', 25 );
57
+ }
58
 
59
  /**
60
  * Checkout
61
  */
62
+ add_action( 'woocommerce_review_order_after_order_total', 'woocommerce_gzd_template_cart_total_tax', 1 );
63
+ add_action( 'woocommerce_review_order_before_cart_contents', 'woocommerce_gzd_template_checkout_table_content_replacement' );
64
+ add_action( 'woocommerce_review_order_after_cart_contents', 'woocommerce_gzd_template_checkout_table_product_hide_filter_removal' );
65
+ add_filter( 'woocommerce_checkout_cart_item_quantity', 'wc_gzd_cart_product_delivery_time', 0, 2 );
66
+ add_filter( 'woocommerce_checkout_cart_item_quantity', 'wc_gzd_cart_product_item_desc', 0, 2 );
67
+ if ( get_option( 'woocommerce_gzd_display_checkout_edit_data_notice' ) == 'yes' )
68
+ add_action( 'woocommerce_before_order_notes', 'woocommerce_gzd_template_checkout_edit_data_notice', 0, 1 );
69
+
70
+ // Do only hook if is no ajax request - fallback if theme misses no-ajax-check before applying hooks & filters
71
+ if ( ! is_ajax() && version_compare( WC()->version, '2.3', '>=' ) ) {
72
+
73
  remove_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 10 );
74
  remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
75
  add_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 10 );
76
  add_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 20 );
77
  add_action( 'woocommerce_checkout_order_review', 'woocommerce_gzd_template_order_submit', 21 );
 
78
  add_action( 'woocommerce_review_order_after_payment', 'woocommerce_gzd_template_checkout_legal', 2 );
79
  add_action( 'woocommerce_review_order_after_payment', 'woocommerce_gzd_template_checkout_set_terms_manually', 3 );
80
  // Temporarily remove order button from payment.php - then add again to show after product table
83
  add_action( 'woocommerce_gzd_review_order_before_submit', 'woocommerce_gzd_template_set_order_button_show_filter', PHP_INT_MAX );
84
  if ( get_option( 'woocommerce_gzd_checkout_legal_digital_checkbox' ) == 'yes' )
85
  add_action( 'woocommerce_review_order_after_payment', 'woocommerce_gzd_digital_checkbox', 4 );
86
+
87
+ // Add payment title heading
88
+ add_action( 'woocommerce_review_order_before_payment', 'woocommerce_gzd_template_checkout_payment_title' );
89
+ // Remove default term box
90
+ add_filter( 'woocommerce_checkout_show_terms', 'woocommerce_gzd_remove_term_checkbox' );
91
+
92
+ }
93
+
94
+ // Before 2.3
95
+ if ( version_compare( WC()->version, '2.3', '<' ) ) {
96
+
97
  add_action( 'woocommerce_gzd_before_shop_table', 'woocommerce_gzd_template_checkout_legal', 2 );
98
  add_action( 'woocommerce_gzd_before_shop_table', 'woocommerce_gzd_template_checkout_set_terms_manually' );
99
  if ( get_option( 'woocommerce_gzd_checkout_legal_digital_checkbox' ) == 'yes' )
100
  add_action( 'woocommerce_gzd_before_shop_table', 'woocommerce_gzd_digital_checkbox', 1 );
101
+
102
+ // Add payment title heading
103
+ add_action( 'woocommerce_review_order_before_payment', 'woocommerce_gzd_template_checkout_payment_title' );
104
+ // Remove default term box
105
+ add_filter( 'woocommerce_checkout_show_terms', 'woocommerce_gzd_remove_term_checkbox' );
106
+
107
  }
108
+
109
+ // Display back to cart button
110
  if ( get_option( 'woocommerce_gzd_display_checkout_back_to_cart_button' ) == 'yes' )
111
  add_action( 'woocommerce_review_order_after_cart_contents', 'woocommerce_gzd_template_checkout_back_to_cart' );
112
+
113
+ // Force order button text
 
 
114
  add_filter( 'woocommerce_order_button_text', 'woocommerce_gzd_template_order_button_text', PHP_INT_MAX );
 
 
 
 
 
115
 
116
  /**
117
  * Checkout Validation
118
  */
119
  add_action( 'woocommerce_after_checkout_validation', 'woocommerce_gzd_checkout_validation', 1, 1 );
120
 
121
+ /**
122
+ * Order details & Thankyou
123
+ */
124
+ // Remove order again button (legally incompliant)
125
+ remove_action( 'woocommerce_order_details_after_order_table', 'woocommerce_order_again_button' );
126
+ add_action( 'woocommerce_thankyou_order_received_text', 'woocommerce_gzd_template_order_success_text', 0, 1 );
127
+ add_action( 'woocommerce_order_item_quantity_html', 'wc_gzd_cart_product_delivery_time', 0, 2 );
128
+ add_action( 'woocommerce_order_item_quantity_html', 'wc_gzd_cart_product_item_desc', 0, 2 );
129
+ add_filter( 'woocommerce_order_formatted_line_subtotal', 'wc_gzd_cart_product_unit_price', 0, 2 );
130
+ if ( get_option( 'woocommerce_gzd_hide_order_success_details' ) == 'yes' )
131
+ remove_action( 'woocommerce_thankyou', 'woocommerce_order_details_table', 10 );
132
+ if ( get_option( 'woocommerce_gzd_trusted_shops_id' ) )
133
+ add_action( 'woocommerce_thankyou', 'woocommerce_gzd_template_checkout_thankyou_trusted_shops', 10, 1 );
134
+
135
  /**
136
  * Footer
137
  */
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: woocommerce, german market, german, germany, deutsch, deutschland, de, de_
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=info@vendidero.de&item_name=Donation+for+WooCommerce+Germanized
5
  Requires at least: 3.8
6
  Tested up to: 4.2
7
- Stable tag: 1.2.3
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -14,49 +14,69 @@ Extends WooCommerce to become a legally compliant shop for german market. WooCom
14
 
15
  (see below for english version)
16
 
17
- WooCommerce Germanized erweitert WooCommerce um alle technisch relevanten Funktionen für den Betrieb eines rechtssicheren Online-Shops mit WooCommerce in Deutschland. Zudem bieten wir mit dem Plugin eine Möglichkeit an, WooCommerce noch besser an den deutschen Mark anzupassen. Das Plugin wird von einem WordPress-erfahrenen, deutschen Team aktiv (weiter-)entwickelt - auf Updates von WooCommerce reagieren wir schnell und zuverlässig.
18
 
19
- Natürlich können wir mit unserem Plugin keine ausführliche Rechtsberatung ersetzen. Wir möchten lediglich die technischen Voraussetzungen für den Betrieb eines rechtssicheren Shops in Deutschland zur Verfügung stellen.
20
 
21
- Damit WooCommerce Germanized noch schicker aussieht haben wir ein komplett auf den deutschen Markt abgestimmtes [WooCommerce Theme](http://vendidero.de/vendipro "WooCommerce Theme für den deutschen Markt"): VendiPro.
22
  Bei der Entwicklung von VendiPro haben wir besonders auf die Einhaltung deutscher Shop-Design-Prinzipien Wert gelegt. WooCommerce Germanized + VendiPro - zusammen die optimale Wahl für deinen deutschen WooCommerce Shop.
23
 
24
  = WooCommerce rechtssicher für den deutschen Markt =
25
  WooCommerce Germanized unterstützt eine Vielzahl typisch deutscher Funktionalitäten: Lieferzeiten, Einheitspreise, Versandkosten- und Mehrwertsteuer-Hinweise, rechtlich relevante Hinweisseiten (z.B. AGB, Widerrufsbelehrung usw.) - auch in E-Mails, Kleinuternehmerregelung, Gebühren für Zahlungsmethoden und noch vieles mehr.
26
- Zudem haben wir einige Anpassungen am Bezahlvorgang vorgenommen, damit dieser den rechtlichen Ansprüchen eines deutschen Online-Shops entspricht. Eine ausführliche Liste der Funktionalitäten sowie weitere Informationen findest du auf [vendidero.de](http://vendidero.de/woocommerce-germanized "WooCommerce Germanized - WooCommerce Plugin für den deutschen Markt")
27
-
28
- = WooCommerce 2.3 kompatibel =
29
- Mit der neuesten Version unterstützt WC Germanized von nun an die in Kürze erscheinende Version 2.3 von WooCommerce. Vorerst ist WC Germanized weiterhin rückwärtskompatibel und unterstützt zusätzlich die alte Version (2.2).
 
 
 
 
 
 
 
 
 
 
30
 
31
  = Trusted Shops vorzertifiziert =
32
  WC Germanized wurde von Trusted Shops vorzertifiziert und bietet damit die optimalen technischen Voraussetzungen für einen rechtssicheren Online-Shop mit WooCommerce in Deutschland.
33
- Trusted Shops zertifiziert Online-Shops nach sorgfältig ausgewählten Qualitätskriterien und hat WC Germanized genau unter die Lupe genommen.
34
  Selbstverständlich können Trusted Shops Kunden mit nur wenigen Einstellungen das Gütesiegel und die Trusted Shops Produkte mit WC Germanized nutzen.
35
 
36
  = Sauber implementiert =
37
  Bei der Entwicklung von WC Germanized haben wir besonderes Augenmerk auf die nahtlose Integration in WooCommerce gelegt.
38
  Die meisten Änderungen erfolgen über Hooks & Filter - nur im äußersten Notfall wird ein Template direkt überschrieben.
39
 
40
- = Steuern für Versandkosten und Gebühren =
41
- WC Germanized unterstützt mit der aktuellen Version die komplizierte Besteuerung von Versandkosten bei "gemischten" Warenkörben (d.h. es befinden sich unterschiedliche MwSt.-Sätze im Warenkorb).
42
- In diesem Fall muss die Mehrwertsteuer der Versandkosten anteilig (basierend auf den Anteil der jeweiligen MwSt.-Rate an der Gesamtbestellung), basierend auf den unterschiedlichen MwSt.-Raten berechnet werden.
 
 
 
 
 
 
 
 
 
 
43
 
44
  = Double Opt-In Verfahren für Benutzerkonten =
45
  Ein Urteil des Amtsgerichts Berlin Pankow/Weißensee macht das Double Opt-In Verfahren für die Erstellung von Benutzerkonten in Online-Shops zur "Pflichtsache". In WC Germanized ist das kein Problem.
46
  Nach Erstellung eines Kontos wird automatisch eine Bestätigungsmail mit Bestätigungslink an den Kunden versendet. Unaktivierte Konten können nach einem bestimmten Interval automatisch gelöscht werden.
47
 
48
  = Neue Umsatzsteuer-Regelung 2015 für virtuelle Produkte =
49
- Mit der neuesten Version unterstützt WC Germanized die neuen Umsatzsteuer-Regelungen (B2C-Geschäfte, gültig ab 01.01.2015) zum Verkauf von virtuellen Produkten in die Europäische Union.
50
  Dabei wird bei virtuellen Produkten der Brutto-Preis beibehalten und lediglich der Netto-Preis, je nach Herkunftsland des Dienstleistungsempfängers, angepasst.
51
  Insofern du von den Regelungen betroffen sein solltest, empfehlen wir dir unbedingt mit deinem Steuerberater Rücksprache zu halten.
52
 
53
  = eKomi Integration =
54
- Mit nur wenigen Klicks lässt sich eKomi als Bewertungsmanagement-Dienstleister in WC Germanized einstellen.
55
  Damit kann dein Online-Shop ganz einfach von den Vorteilen des externen Dienstleisters profitieren und unabhängige Kundenbewertungen veröffentlichen.
56
 
57
- = Premium Support =
58
- Kunden von VendiPro genießen einen kompetenten Ticket-Support zu Fragen rund um VendiPro und WC Germanized. Natürlich versuchen wir über das WordPress Support-Forum auch einen guten Support zu gewährleisten.
59
- Gerne übernehmen wir die von dir gewünschten Individualisierungen und Anpassungen an WordPress, WooCommerce und WC Germanized - und unterbreiten dir gerne ein [individuelles Angebot](http://vendidero.de/individualisierung) basierend auf deinen Vorstellungen.
60
 
61
  = About WooCommerce Germanized =
62
  WC Germanized extends WooCommerce to become a legally compliant Online-Shop for the german market. This does not replace legal advice - we do only offer technical implementations to meet german law.
@@ -76,7 +96,7 @@ Overview of what WooCommerce Germanized offers:
76
  = Minimale Voraussetzungen =
77
 
78
  * WordPress 3.8 oder neuer
79
- * WooCommerce 2.0 (neueste Version empfohlen)
80
  * PHP Version 5.2.4 oder neuer
81
  * MySQL Version 5.0 oder neuer
82
 
@@ -117,12 +137,12 @@ Wir bemühen uns immer schnellstmöglich auf Updates von WooCommerce zu reagiere
117
  = Wo erhalten ich Hilfe bei der Einstellung und Nutzung von WooCommerce Germanized? =
118
 
119
  Wir arbeiten aktuell an einer ausführlichen Dokumentation - Zudem werden wir einige kleinere Tutorials veröffentlichen wie ihr WooCommerce Germanized
120
- professionell einsetzen könnt. Zusätzlich dazu bieten wir Support über die WordPress-Support Foren sowie für unsere VendiPro Kunden einen kompetenten Ticket-Support.
121
 
122
  = Nicht alle Einstellungen sehen in meinem Theme ansprechend aus =
123
 
124
  Wir können natürlich nicht gewähren, dass jedes Theme die nötigen Styles implementiert, damit jede WooCommerce Germanized Einstellung schick aussieht.
125
- Aus diesem Grund haben wir unser eigenes, für den deutschen Markt entwickeltes WooCommerce Theme - [VendiPro](http://vendidero.de/vendipro) - entwickelt.
126
 
127
  = Du möchtest Bugs melden oder mithelfen WooCommerce Germanized zu verbessern? =
128
 
@@ -134,6 +154,18 @@ Bugs sowie Hilfe bei der Arbeit an WooCommerce Germanized werden gerne über uns
134
 
135
  == Changelog ==
136
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  = 1.2.3 =
138
  * Fix - Buy now button visibility WC < 2.3
139
 
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=info@vendidero.de&item_name=Donation+for+WooCommerce+Germanized
5
  Requires at least: 3.8
6
  Tested up to: 4.2
7
+ Stable tag: 1.3.0
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
14
 
15
  (see below for english version)
16
 
17
+ WooCommerce Germanized erweitert WooCommerce um alle technisch relevanten Funktionen für den Betrieb eines rechtssicheren Online-Shops mit WooCommerce in Deutschland. Das Ziel des Plugins ist es, WooCommerce optimal an die Bedürfnisse des deutschen Marktes anzupassen. WooCommerce Germanized wird von einem WordPress-erfahrenen, deutschen Team aktiv (weiter-)entwickelt - bei Updates von WooCommerce ziehen wir innerhalb kürzester Zeit mit.
18
 
19
+ Nutzer von [WooCommerce Germanized Pro](https://vendidero.de/woocommerce-germanized "WooCommerce optimiert für den deutschen Markt") profitieren von vielen weiterführenden Features z.B. PDF-Rechnungen, Mustertexte-Generator für AGB und Widerrufsbelehrung, Premium Support und vielem mehr!
20
 
21
+ Damit WooCommerce Germanized noch schicker aussieht haben wir ein komplett auf den deutschen Markt abgestimmtes [WooCommerce Theme](https://vendidero.de/vendipro "WooCommerce Theme für den deutschen Markt"): VendiPro.
22
  Bei der Entwicklung von VendiPro haben wir besonders auf die Einhaltung deutscher Shop-Design-Prinzipien Wert gelegt. WooCommerce Germanized + VendiPro - zusammen die optimale Wahl für deinen deutschen WooCommerce Shop.
23
 
24
  = WooCommerce rechtssicher für den deutschen Markt =
25
  WooCommerce Germanized unterstützt eine Vielzahl typisch deutscher Funktionalitäten: Lieferzeiten, Einheitspreise, Versandkosten- und Mehrwertsteuer-Hinweise, rechtlich relevante Hinweisseiten (z.B. AGB, Widerrufsbelehrung usw.) - auch in E-Mails, Kleinuternehmerregelung, Gebühren für Zahlungsmethoden und noch vieles mehr.
26
+ Zudem haben wir einige Anpassungen am Bezahlvorgang vorgenommen, damit dieser den rechtlichen Ansprüchen eines deutschen Online-Shops entspricht. Eine ausführliche Liste der Funktionalitäten sowie weitere Informationen zu WooCommerce Germanized findest du bei vendidero.de.
27
+
28
+ * Lieferzeiten
29
+ * Kleinunternehmerregelung
30
+ * Hinweise für Mehrwertsteuer, Versandkosten
31
+ * Einheits- und Grundpreise
32
+ * Warenkorb-Kurzbeschreibungen
33
+ * Hinweise für AGB, Widerrufsbelehrung
34
+ * Kompatibilität zur Button-Lösung
35
+ * Double-Opt-In für Benutzerkonten
36
+ * Steuern für Versandkosten und Gebühren
37
+ * AGB, Widerrufsbelehrung etc. in ausgewählten E-Mails
38
+ * Zahlungsgebühren festlegen
39
+ * Online Widerrufsformular per Shortcode
40
 
41
  = Trusted Shops vorzertifiziert =
42
  WC Germanized wurde von Trusted Shops vorzertifiziert und bietet damit die optimalen technischen Voraussetzungen für einen rechtssicheren Online-Shop mit WooCommerce in Deutschland.
43
+ Trusted Shops zertifiziert Online-Shops nach sorgfältig ausgewählten Qualitätskriterien und hat WooCommerce Germanized genau unter die Lupe genommen.
44
  Selbstverständlich können Trusted Shops Kunden mit nur wenigen Einstellungen das Gütesiegel und die Trusted Shops Produkte mit WC Germanized nutzen.
45
 
46
  = Sauber implementiert =
47
  Bei der Entwicklung von WC Germanized haben wir besonderes Augenmerk auf die nahtlose Integration in WooCommerce gelegt.
48
  Die meisten Änderungen erfolgen über Hooks & Filter - nur im äußersten Notfall wird ein Template direkt überschrieben.
49
 
50
+ = Pro: PDF Rechnungen =
51
+ Als Nutzer der Pro Version von WooCommerce Germanized erstellst du automatisiert oder manuell PDF-Rechnungen zu deinen Bestellungen. Dabei hast du volle Kontrolle über das Layout deiner Rechnungen.
52
+ Lade beispielsweise einfach ein PDF-Template hoch, das als "Hintergrund" für deine Rechnungen fungiert. Mit wenigen Klicks exportierst du deine Rechnungen (CSV, zip) für deine Buchhaltung oder deinen Steuerberater.
53
+ Mehr Informationen? [PDF Rechnungen für WooCommerce](https://vendidero.de/woocommerce-germanized#accounting "WooCommerce PDF Rechnungen")
54
+
55
+ = Steuern für Versandkosten und Gebühren =
56
+ WooCommerce Germanized unterstützt mit der aktuellen Version die komplizierte Besteuerung von Versandkosten bei "gemischten" Warenkörben (d.h. es befinden sich unterschiedliche MwSt.-Sätze im Warenkorb).
57
+ In diesem Fall muss die Mehrwertsteuer der Versandkosten anteilig (basierend auf den Anteil der jeweiligen MwSt.-Rate an der Gesamtbestellung), anhand der unterschiedlichen MwSt.-Raten berechnet werden.
58
+
59
+ = Pro: Zeitpunkt für den Vertragsschluss bestimmen =
60
+ In WooCommerce ist es standardmäßig nicht vorgesehen, den Vertragsschluss erst nach einer manuellen Prüfung einzuleiten. Im Normalfall wird der Kaufvertrag direkt mit der E-Mail "Bestätigung der Bestellung" geschlossen.
61
+ Als Pro User kannst du optional entscheiden, ob du Bestellungen vorab manuell prüfen möchtest. Der Kunde wird dann nach der Bestellung nicht automatisch zur Bezahlschnittstelle (z.B. Paypal) weitergeleitet und erhält eine abweichende E-Mail in der auf die manuelle Prüfung aufmerksam gemacht wird.
62
+ Anschließend kannst du in deinem WooCommerce Backend über einen Button die Bestellung nach einer Prüfung ganz einfach bestätigen.
63
 
64
  = Double Opt-In Verfahren für Benutzerkonten =
65
  Ein Urteil des Amtsgerichts Berlin Pankow/Weißensee macht das Double Opt-In Verfahren für die Erstellung von Benutzerkonten in Online-Shops zur "Pflichtsache". In WC Germanized ist das kein Problem.
66
  Nach Erstellung eines Kontos wird automatisch eine Bestätigungsmail mit Bestätigungslink an den Kunden versendet. Unaktivierte Konten können nach einem bestimmten Interval automatisch gelöscht werden.
67
 
68
  = Neue Umsatzsteuer-Regelung 2015 für virtuelle Produkte =
69
+ 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.
70
  Dabei wird bei virtuellen Produkten der Brutto-Preis beibehalten und lediglich der Netto-Preis, je nach Herkunftsland des Dienstleistungsempfängers, angepasst.
71
  Insofern du von den Regelungen betroffen sein solltest, empfehlen wir dir unbedingt mit deinem Steuerberater Rücksprache zu halten.
72
 
73
  = eKomi Integration =
74
+ Mit nur wenigen Klicks lässt sich eKomi als Bewertungsmanagement-Dienstleister in WooCommerce Germanized einstellen.
75
  Damit kann dein Online-Shop ganz einfach von den Vorteilen des externen Dienstleisters profitieren und unabhängige Kundenbewertungen veröffentlichen.
76
 
77
+ = Pro: Premium Support =
78
+ Kunden von WooCommerce Germanized Pro genießen einen kompetenten Ticket-Support zu Fragen rund um WooCommerce Germanized. Natürlich versuchen wir über das WordPress Support-Forum auch einen guten Support zu gewährleisten.
79
+ Gerne übernehmen wir die von dir gewünschten Individualisierungen und Anpassungen an WordPress, WooCommerce und WC Germanized - und unterbreiten dir ein [individuelles Angebot](https://vendidero.de/individualisierung) basierend auf deinen Vorstellungen.
80
 
81
  = About WooCommerce Germanized =
82
  WC Germanized extends WooCommerce to become a legally compliant Online-Shop for the german market. This does not replace legal advice - we do only offer technical implementations to meet german law.
96
  = Minimale Voraussetzungen =
97
 
98
  * WordPress 3.8 oder neuer
99
+ * WooCommerce 2.2 (neueste Version empfohlen)
100
  * PHP Version 5.2.4 oder neuer
101
  * MySQL Version 5.0 oder neuer
102
 
137
  = Wo erhalten ich Hilfe bei der Einstellung und Nutzung von WooCommerce Germanized? =
138
 
139
  Wir arbeiten aktuell an einer ausführlichen Dokumentation - Zudem werden wir einige kleinere Tutorials veröffentlichen wie ihr WooCommerce Germanized
140
+ professionell einsetzen könnt. Zusätzlich dazu bieten wir Support über die WordPress-Support Foren sowie für unsere Kunden von [WooCommerce Germanized Pro](https://vendidero.de/woocommerce-germanized "Support für WooCommerce Germanized") einen kompetenten Ticket-Support.
141
 
142
  = Nicht alle Einstellungen sehen in meinem Theme ansprechend aus =
143
 
144
  Wir können natürlich nicht gewähren, dass jedes Theme die nötigen Styles implementiert, damit jede WooCommerce Germanized Einstellung schick aussieht.
145
+ Aus diesem Grund haben wir unser eigenes, für den deutschen Markt entwickeltes WooCommerce Theme - [VendiPro](https://vendidero.de/vendipro) - entwickelt.
146
 
147
  = Du möchtest Bugs melden oder mithelfen WooCommerce Germanized zu verbessern? =
148
 
154
 
155
  == Changelog ==
156
 
157
+ = 1.3.0 =
158
+ * Feature - Better theme compatibility (no template overriding required any longer)
159
+ * Feature - Unit editor (taxonomy)
160
+ * Feature - WPML compatibility
161
+ * Feature - Better shipping time assignment
162
+ * Feature - Trusted Shops Review Collector
163
+ * Feature - Fallback-Mode for users facing problems within checkout
164
+ * Feature - "Review your order" notice within checkout
165
+ * Fix - Different tax rates for variations supported
166
+ * Fix - WP-Cron incompatibility
167
+ * Fix - Language problems while overriding cart total strings
168
+
169
  = 1.2.3 =
170
  * Fix - Buy now button visibility WC < 2.3
171
 
templates/checkout/edit-data-notice.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Checkout edit data notice
4
+ *
5
+ * @author Vendidero
6
+ * @package WooCommerceGermanized/Templates
7
+ * @version 1.0
8
+ */
9
+
10
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
11
+
12
+ ?>
13
+ <div class="wc-gzd-edit-data-notice">
14
+ <p class="form-row wc-gzd-info">
15
+ <?php if ( get_option( 'woocommerce_gzd_display_checkout_back_to_cart_button' ) == 'yes' ) : ?>
16
+ <?php printf( __( 'Please check all of your entries carefully. You may change your entries with the help of the button "%s".', 'woocommerce-germanized' ), __( 'Edit Order', 'woocommerce-germanized' ) ); ?>
17
+ <?php else : ?>
18
+ <?php _e( 'Please check all of your entries carefully. You may change your entries with the help of the "Back" button in your browser', 'woocommerce-germanized' ); ?>
19
+ <?php endif; ?>
20
+ </p>
21
+ </div>
templates/checkout/form-pay.php DELETED
@@ -1,101 +0,0 @@
1
- <?php
2
- /**
3
- * Pay for order form
4
- *
5
- * @author WooThemes
6
- * @package WooCommerce/Templates
7
- * @version 1.6.4
8
- */
9
-
10
- if ( ! defined( 'ABSPATH' ) ) {
11
- exit; // Exit if accessed directly
12
- }
13
-
14
- ?>
15
- <form id="order_review" method="post">
16
-
17
- <div id="payment">
18
- <?php if ( $order->needs_payment() ) : ?>
19
- <h3><?php _e( 'Payment', 'woocommerce' ); ?></h3>
20
- <ul class="payment_methods methods">
21
- <?php
22
- if ( $available_gateways = WC()->payment_gateways->get_available_payment_gateways() ) {
23
- // Chosen Method
24
- if ( sizeof( $available_gateways ) )
25
- current( $available_gateways )->set_current();
26
-
27
- foreach ( $available_gateways as $gateway ) {
28
- ?>
29
- <li class="payment_method_<?php echo $gateway->id; ?>">
30
- <input id="payment_method_<?php echo $gateway->id; ?>" type="radio" class="input-radio" name="payment_method" value="<?php echo esc_attr( $gateway->id ); ?>" <?php checked( $gateway->chosen, true ); ?> data-order_button_text="<?php echo esc_attr( $gateway->order_button_text ); ?>" />
31
- <label for="payment_method_<?php echo $gateway->id; ?>"><?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?></label>
32
- <?php
33
- if ( $gateway->has_fields() || $gateway->get_description() ) {
34
- echo '<div class="payment_box payment_method_' . $gateway->id . '" style="display:none;">';
35
- $gateway->payment_fields();
36
- echo '</div>';
37
- }
38
- ?>
39
- </li>
40
- <?php
41
- }
42
- } else {
43
-
44
- echo '<p>' . __( 'Sorry, it seems that there are no available payment methods for your location. Please contact us if you require assistance or wish to make alternate arrangements.', 'woocommerce' ) . '</p>';
45
-
46
- }
47
- ?>
48
- </ul>
49
- <?php endif; ?>
50
-
51
- </div>
52
-
53
- <h3 id="wc_gzd_order_review_heading"><?php _e( 'Your order', 'woocommerce' ); ?></h3>
54
-
55
- <table class="shop_table">
56
- <thead>
57
- <tr>
58
- <th class="product-name"><?php _e( 'Product', 'woocommerce' ); ?></th>
59
- <th class="product-quantity"><?php _e( 'Qty', 'woocommerce' ); ?></th>
60
- <th class="product-total"><?php _e( 'Totals', 'woocommerce' ); ?></th>
61
- </tr>
62
- </thead>
63
- <tbody>
64
- <?php
65
- if ( sizeof( $order->get_items() ) > 0 ) :
66
- foreach ( $order->get_items() as $item ) :
67
- echo '
68
- <tr>
69
- <td class="product-name">' . $item['name'].'</td>
70
- <td class="product-quantity">' . $item['qty'].'</td>
71
- <td class="product-subtotal">' . $order->get_formatted_line_subtotal( $item ) . '</td>
72
- </tr>';
73
- endforeach;
74
- endif;
75
- ?>
76
- </tbody>
77
- <tfoot>
78
- <?php
79
- if ( $totals = $order->get_order_item_totals() ) foreach ( $totals as $total ) :
80
- ?>
81
- <tr>
82
- <th scope="row" colspan="2"><?php echo $total['label']; ?></th>
83
- <td class="product-total"><?php echo $total['value']; ?></td>
84
- </tr>
85
- <?php
86
- endforeach;
87
- ?>
88
- </tfoot>
89
- </table>
90
-
91
- <div class="form-row">
92
- <?php wp_nonce_field( 'woocommerce-pay' ); ?>
93
- <?php
94
- $pay_order_button_text = apply_filters( 'woocommerce_pay_order_button_text', __( 'Pay for order', 'woocommerce' ) );
95
-
96
- echo apply_filters( 'woocommerce_pay_order_button_html', '<input type="submit" class="button alt" id="place_order" value="' . esc_attr( $pay_order_button_text ) . '" data-value="' . esc_attr( $pay_order_button_text ) . '" />' );
97
- ?>
98
- <input type="hidden" name="woocommerce_pay" value="1" />
99
- </div>
100
-
101
- </form>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/checkout/review-order-2-2.php CHANGED
@@ -82,22 +82,9 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
82
  ?>
83
  <tr class="<?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">
84
  <td class="product-name">
85
- <table class="product-name-inner">
86
- <tr>
87
- <?php if ( get_option( 'woocommerce_gzd_display_checkout_thumbnails' ) == 'yes' ) : ?>
88
- <td class="product-thumbnail">
89
- <?php echo apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ); ?>
90
- </td>
91
- <?php endif; ?>
92
- <td class="product-name">
93
- <?php echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key ); ?>
94
- <?php echo WC()->cart->get_item_data( $cart_item ); ?>
95
- </td>
96
- <td class="product-quantity">
97
- <?php echo apply_filters( 'woocommerce_checkout_cart_item_quantity', ' <strong class="product-quantity">' . sprintf( '&times; %s', $cart_item['quantity'] ) . '</strong>', $cart_item, $cart_item_key ); ?>
98
- </td>
99
- </tr>
100
- </table>
101
  </td>
102
  <td class="product-total">
103
  <?php echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key ); ?>
82
  ?>
83
  <tr class="<?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">
84
  <td class="product-name">
85
+ <?php echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key ); ?>
86
+ <?php echo apply_filters( 'woocommerce_checkout_cart_item_quantity', ' <strong class="product-quantity">' . sprintf( '&times; %s', $cart_item['quantity'] ) . '</strong>', $cart_item, $cart_item_key ); ?>
87
+ <?php echo WC()->cart->get_item_data( $cart_item ); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  </td>
89
  <td class="product-total">
90
  <?php echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key ); ?>
templates/checkout/{review-order.php → review-order-fallback.php} RENAMED
@@ -11,14 +11,11 @@ if ( ! defined( 'ABSPATH' ) ) {
11
  exit;
12
  }
13
  ?>
14
- <?php if ( ! is_ajax() ) : ?>
15
- <?php do_action( 'woocommerce_gzd_before_shop_table' ); ?>
16
- <?php endif; ?>
17
  <table class="shop_table woocommerce-checkout-review-order-table">
18
  <thead>
19
  <tr>
20
  <th class="product-name"><?php _e( 'Product', 'woocommerce' ); ?></th>
21
- <th class="product-total"><?php echo __( 'Total Sum', 'woocommerce-germanized' ); ?></th>
22
  </tr>
23
  </thead>
24
  <tbody>
@@ -32,22 +29,9 @@ if ( ! defined( 'ABSPATH' ) ) {
32
  ?>
33
  <tr class="<?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">
34
  <td class="product-name">
35
- <table class="product-details-inner">
36
- <tr>
37
- <?php if ( get_option( 'woocommerce_gzd_display_checkout_thumbnails' ) == 'yes' ) : ?>
38
- <td class="product-thumbnail">
39
- <?php echo apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ); ?>
40
- </td>
41
- <?php endif; ?>
42
- <td class="product-title">
43
- <?php echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key ); ?>
44
- <?php echo WC()->cart->get_item_data( $cart_item ); ?>
45
- </td>
46
- <td class="product-quantity">
47
- <?php echo apply_filters( 'woocommerce_checkout_cart_item_quantity', ' <strong class="product-quantity">' . sprintf( '&times; %s', $cart_item['quantity'] ) . '</strong>', $cart_item, $cart_item_key ); ?>
48
- </td>
49
- </tr>
50
- </table>
51
  </td>
52
  <td class="product-total">
53
  <?php echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key ); ?>
@@ -63,7 +47,7 @@ if ( ! defined( 'ABSPATH' ) ) {
63
  <tfoot>
64
 
65
  <tr class="cart-subtotal">
66
- <th><?php _e( 'Cart Subtotal', 'woocommerce' ); ?></th>
67
  <td><?php wc_cart_totals_subtotal_html(); ?></td>
68
  </tr>
69
 
@@ -110,7 +94,7 @@ if ( ! defined( 'ABSPATH' ) ) {
110
  <?php do_action( 'woocommerce_review_order_before_order_total' ); ?>
111
 
112
  <tr class="order-total">
113
- <th><?php _e( 'Order Total', 'woocommerce' ); ?></th>
114
  <td><?php wc_cart_totals_order_total_html(); ?></td>
115
  </tr>
116
 
11
  exit;
12
  }
13
  ?>
 
 
 
14
  <table class="shop_table woocommerce-checkout-review-order-table">
15
  <thead>
16
  <tr>
17
  <th class="product-name"><?php _e( 'Product', 'woocommerce' ); ?></th>
18
+ <th class="product-total"><?php _e( 'Total', 'woocommerce' ); ?></th>
19
  </tr>
20
  </thead>
21
  <tbody>
29
  ?>
30
  <tr class="<?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">
31
  <td class="product-name">
32
+ <?php echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key ); ?>
33
+ <?php echo apply_filters( 'woocommerce_checkout_cart_item_quantity', ' <strong class="product-quantity">' . sprintf( '&times; %s', $cart_item['quantity'] ) . '</strong>', $cart_item, $cart_item_key ); ?>
34
+ <?php echo WC()->cart->get_item_data( $cart_item ); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  </td>
36
  <td class="product-total">
37
  <?php echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key ); ?>
47
  <tfoot>
48
 
49
  <tr class="cart-subtotal">
50
+ <th><?php _e( 'Subtotal', 'woocommerce' ); ?></th>
51
  <td><?php wc_cart_totals_subtotal_html(); ?></td>
52
  </tr>
53
 
94
  <?php do_action( 'woocommerce_review_order_before_order_total' ); ?>
95
 
96
  <tr class="order-total">
97
+ <th><?php _e( 'Total', 'woocommerce' ); ?></th>
98
  <td><?php wc_cart_totals_order_total_html(); ?></td>
99
  </tr>
100
 
templates/checkout/review-order-product-table.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Review order product table
4
+ *
5
+ * @author Vendidero
6
+ * @package WooCommerceGermanized/Templates
7
+ * @version 1.0.0
8
+ */
9
+
10
+ if ( ! defined( 'ABSPATH' ) )
11
+ exit;
12
+
13
+ foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
14
+ $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
15
+
16
+ if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_checkout_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
17
+ ?>
18
+ <tr class="<?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">
19
+ <td class="product-name">
20
+ <?php if ( get_option( 'woocommerce_gzd_display_checkout_thumbnails' ) == 'yes' ) : ?>
21
+ <div class="wc-gzd-product-name-left">
22
+ <?php echo apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ); ?>
23
+ </div>
24
+ <?php endif; ?>
25
+ <div class="wc-gzd-product-name-right">
26
+ <?php echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key ); ?>
27
+ <?php echo apply_filters( 'woocommerce_checkout_cart_item_quantity', ' <strong class="product-quantity">' . sprintf( '&times; %s', $cart_item['quantity'] ) . '</strong>', $cart_item, $cart_item_key ); ?>
28
+ <?php echo WC()->cart->get_item_data( $cart_item ); ?>
29
+ </div>
30
+ <div class="clear"></div>
31
+ </td>
32
+ <td class="product-total">
33
+ <?php echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key ); ?>
34
+ </td>
35
+ </tr>
36
+ <?php
37
+ }
38
+ }
templates/emails/{email-order-items.php → email-order-items-2-2.php} RENAMED
File without changes
templates/global/small-business-info.php CHANGED
@@ -10,4 +10,8 @@
10
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
11
  ?>
12
 
13
- <div class="wc-gzd-additional-wrapper"><p class="wc-gzd-additional-info small-business-info"><?php _e( 'Because of the small business owner state according to &#167;19 UStG the seller charge no sales tax, and therefore do not show it.', 'woocommerce-germanized' );?></p></div>
 
 
 
 
10
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
11
  ?>
12
 
13
+ <div class="wc-gzd-additional-wrapper">
14
+ <p class="wc-gzd-additional-info small-business-info">
15
+ <?php _e( 'Because of the small business owner state according to &#167;19 UstG the seller does not levy nor state the German value added tax.', 'woocommerce-germanized' ); ?>
16
+ </p>
17
+ </div>
templates/single-product/price-unit.php CHANGED
@@ -14,4 +14,4 @@ global $product;
14
 
15
  <?php if ( $product->gzd_product->has_unit() ) : ?>
16
  <p class="price price-unit smaller"><?php echo $product->gzd_product->get_unit_html(); ?></p>
17
- <?php endif ;?>
14
 
15
  <?php if ( $product->gzd_product->has_unit() ) : ?>
16
  <p class="price price-unit smaller"><?php echo $product->gzd_product->get_unit_html(); ?></p>
17
+ <?php endif; ?>
woocommerce-germanized.php CHANGED
@@ -1,13 +1,13 @@
1
  <?php
2
  /**
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.2.3
7
  * Author: Vendidero
8
- * Author URI: http://vendidero.de
9
  * Requires at least: 3.8
10
- * Tested up to: 4.1
11
  *
12
  * Text Domain: woocommerce-germanized
13
  * Domain Path: /i18n/languages/
@@ -26,7 +26,7 @@ final class WooCommerce_Germanized {
26
  *
27
  * @var string
28
  */
29
- public $version = '1.2.3';
30
 
31
  /**
32
  * Single instance of WooCommerce Germanized Main Class
@@ -111,10 +111,10 @@ final class WooCommerce_Germanized {
111
  spl_autoload_register( "__autoload" );
112
  spl_autoload_register( array( $this, 'autoload' ) );
113
 
114
- if ( ! $this->is_woocommerce_activated() ) {
115
- add_action( 'admin_init', array( $this, 'deactivate' ), 0 );
116
- return;
117
- }
118
 
119
  // Define constants
120
  $this->define_constants();
@@ -129,7 +129,6 @@ final class WooCommerce_Germanized {
129
  add_action( 'widgets_init', array( $this, 'include_widgets' ), 25 );
130
  add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) );
131
  add_action( 'woocommerce_init', array( $this, 'replace_woocommerce_cart' ), 0 );
132
- add_action( 'woocommerce_init', array( $this, 'replace_woocommerce_payment_gateways' ), 0 );
133
  add_action( 'woocommerce_init', array( $this, 'replace_woocommerce_product_factory' ), PHP_INT_MAX );
134
 
135
  // Loaded action
@@ -137,24 +136,13 @@ final class WooCommerce_Germanized {
137
 
138
  }
139
 
140
- public function deactivate() {
141
- if ( current_user_can( 'activate_plugins' ) )
142
- deactivate_plugins( plugin_basename( __FILE__ ) );
143
- }
144
-
145
  /**
146
- * Checks if WooCommerce is activated
147
  *
148
- * @return boolean true if WooCommerce is activated
149
  */
150
- public function is_woocommerce_activated() {
151
- if ( is_multisite() )
152
- require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
153
- if ( is_multisite() && ! ( is_plugin_active_for_network( 'woocommerce/woocommerce.php' ) || in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) )
154
- return false;
155
- if ( ! is_multisite() && ! in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) )
156
- return false;
157
- return true;
158
  }
159
 
160
  /**
@@ -165,14 +153,19 @@ final class WooCommerce_Germanized {
165
  do_action( 'before_woocommerce_germanized_init' );
166
 
167
  add_filter( 'woocommerce_locate_template', array( $this, 'filter_templates' ), PHP_INT_MAX, 3 );
168
- if ( version_compare( WC()->version, '2.3', '<' ) )
 
169
  add_filter( 'woocommerce_gzd_default_plugin_template', array( $this, 'filter_templates_old_version' ), 0, 2 );
170
- add_filter( 'woocommerce_product_class', array( $this, 'filter_product_classes' ), PHP_INT_MAX, 4 );
 
 
 
 
 
171
  add_filter( 'woocommerce_get_settings_pages', array( $this, 'add_settings' ) );
172
  add_filter( 'woocommerce_enqueue_styles', array( $this, 'add_styles' ) );
173
  add_action( 'wp_enqueue_scripts', array( $this, 'add_scripts' ) );
174
  add_action( 'wp_enqueue_scripts', array( $this, 'add_inline_styles' ) );
175
- add_action( 'admin_enqueue_scripts', array( $this, 'add_admin_styles' ) );
176
  add_action( 'wp_print_scripts', array( $this, 'localize_scripts' ), 5 );
177
  add_filter( 'woocommerce_email_classes', array( $this, 'add_emails' ) );
178
  add_filter( 'woocommerce_locate_core_template', array( $this, 'email_templates' ), 0, 3 );
@@ -180,7 +173,8 @@ final class WooCommerce_Germanized {
180
 
181
  // Add better tax display to order totals
182
  add_filter( 'woocommerce_get_order_item_totals', array( $this, 'order_item_totals' ), 0, 2 );
183
- add_action( 'woocommerce_cart_calculate_fees', array( $this, 'add_fee_cart' ), 0 );
 
184
 
185
  // Adjust virtual Product Price and tax class
186
  add_filter( 'woocommerce_get_price_including_tax', array( $this, 'set_virtual_product_price' ), PHP_INT_MAX, 3 );
@@ -202,6 +196,9 @@ final class WooCommerce_Germanized {
202
  add_action( 'template_redirect', array( $this, 'customer_account_activation_check' ) );
203
  add_action( 'woocommerce_gzd_customer_cleanup', array( WC_GZD_Admin_Customer::instance(), 'account_cleanup' ) );
204
 
 
 
 
205
  // Remove processing + on-hold default order confirmation mails
206
  $mailer = WC()->mailer();
207
  $mails = $mailer->get_emails();
@@ -220,13 +217,6 @@ final class WooCommerce_Germanized {
220
  do_action( 'woocommerce_germanized_init' );
221
  }
222
 
223
- /**
224
- * Replaces default WC_Payment_Gateways to enable dependency injection
225
- */
226
- public function replace_woocommerce_payment_gateways() {
227
- WC()->payment_gateways = WC_GZD_Payment_Gateways::instance();
228
- }
229
-
230
  /**
231
  * Overload product factory to inject gzd_product
232
  */
@@ -258,9 +248,7 @@ final class WooCommerce_Germanized {
258
  $class = strtolower( $class );
259
  $file = 'class-' . str_replace( '_', '-', $class ) . '.php';
260
 
261
- if ( strpos( $class, 'wc_gzd_gateway_' ) === 0 )
262
- $path = $this->plugin_path() . '/includes/gateways/' . trailingslashit( substr( str_replace( '_', '-', $class ), 15 ) );
263
- else if ( strpos( $class, 'wc_gzd_admin_' ) === 0 )
264
  $path = $this->plugin_path() . '/includes/admin/';
265
 
266
  if ( version_compare( get_option( 'woocommerce_version' ), '2.3', '<' ) ) {
@@ -344,10 +332,13 @@ final class WooCommerce_Germanized {
344
 
345
  // Post types
346
  include_once ( 'includes/class-wc-gzd-post-types.php' );
 
 
347
 
348
  // Abstracts
349
  include_once ( 'includes/abstracts/abstract-wc-gzd-product.php' );
350
- include_once ( 'includes/abstracts/abstract-wc-gzd-payment-gateway.php' );
 
351
 
352
  include_once ( 'includes/wc-gzd-cart-functions.php' );
353
  include_once ( 'includes/class-wc-gzd-checkout.php' );
@@ -387,9 +378,9 @@ final class WooCommerce_Germanized {
387
  public function filter_templates( $template, $template_name, $template_path ) {
388
  $template_path = $this->template_path();
389
 
390
- if ( empty( $GLOBALS[ 'template_name' ] ) )
391
- $GLOBALS['template_name'] = array();
392
- $GLOBALS['template_name'][] = $template_name;
393
 
394
  // Check Theme
395
  $theme_template = locate_template(
@@ -399,6 +390,8 @@ final class WooCommerce_Germanized {
399
  )
400
  );
401
 
 
 
402
  // Load Default
403
  if ( ! $theme_template && file_exists( apply_filters( 'woocommerce_gzd_default_plugin_template', $this->plugin_path() . '/templates/' . $template_name, $template_name ) ) )
404
  return apply_filters( 'woocommerce_gzd_default_plugin_template', $this->plugin_path() . '/templates/' . $template_name, $template_name );
@@ -431,6 +424,31 @@ final class WooCommerce_Germanized {
431
  return apply_filters( 'woocommerce_gzd_important_templates', array( 'checkout/form-pay.php', 'checkout/review-order.php' ) );
432
  }
433
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
434
  /**
435
  * Inject WC_GZD_Product into WC_Product by filtering postmeta - fallback if not using wc_get_product
436
  *
@@ -450,22 +468,10 @@ final class WooCommerce_Germanized {
450
  * Replace the default WC_Cart by WC_GZD_Cart for EU virtual VAT rules.
451
  */
452
  public function replace_woocommerce_cart() {
453
- if ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) == 'yes' && ( ! is_admin() || defined( 'DOING_AJAX' ) ) )
454
  WC()->cart = new WC_GZD_Cart();
455
  }
456
 
457
- /**
458
- * Set default order button text instead of the button text defined by each payment gateway.
459
- * Can be overriden by setting force_order_button_text within payment gateway class
460
- */
461
- public function set_order_button_gateway_text() {
462
- $gateways = WC()->payment_gateways->get_available_payment_gateways();
463
- foreach( $gateways as $gateway ) {
464
- if ( ! isset( $gateway->force_order_button_text ) || ! $gateway->force_order_button_text )
465
- $gateway->order_button_text = __( get_option( 'woocommerce_gzd_order_submit_btn_text' ), 'woocommerce-germanized' );
466
- }
467
- }
468
-
469
  /**
470
  * Calls a filter to temporarily set cart tax to zero. This is only done to hide the cart tax estimated text.
471
  * Filter is being remove right after get_cart_tax - check has been finished within cart-totals.php
@@ -493,15 +499,6 @@ final class WooCommerce_Germanized {
493
  remove_filter( 'woocommerce_get_cart_tax', array( $this, 'set_cart_tax_zero' ) );
494
  }
495
 
496
- /**
497
- * Gets payment gateways which are ready to accept fees.
498
- *
499
- * @return array
500
- */
501
- public function get_payment_gateways_feeable() {
502
- return apply_filters( 'wc_gzd_payment_gateways_feeable', array( 'bacs', 'paypal', 'cod' ) );
503
- }
504
-
505
  /**
506
  * Load WooCommerce Germanized Product Classes instead of WooCommerce builtin Product Classes
507
  *
@@ -563,26 +560,21 @@ final class WooCommerce_Germanized {
563
  ), $links );
564
  }
565
 
566
- /**
567
- * Add custom styles to Admin
568
- */
569
- public function add_admin_styles() {
570
- wp_register_style( 'woocommerce-gzd-admin', WC_germanized()->plugin_url() . '/assets/css/woocommerce-gzd-admin.css', false, WC_germanized()->version );
571
- wp_enqueue_style( 'woocommerce-gzd-admin' );
572
- }
573
-
574
  /**
575
  * Add styles to frontend
576
  *
577
  * @param array $styles
578
  */
579
  public function add_styles( $styles ) {
 
 
580
  $styles['woocommerce-gzd-layout'] = array(
581
- 'src' => str_replace( array( 'http:', 'https:' ), '', WC_germanized()->plugin_url() ) . '/assets/css/woocommerce-gzd-layout.css',
582
  'deps' => '',
583
  'version' => WC_GERMANIZED_VERSION,
584
  'media' => 'all'
585
  );
 
586
  return $styles;
587
  }
588
 
@@ -600,18 +592,23 @@ final class WooCommerce_Germanized {
600
  */
601
  public function add_scripts() {
602
  global $post;
 
 
603
  $assets_path = str_replace( array( 'http:', 'https:' ), '', WC_germanized()->plugin_url() ) . '/assets/';
604
  $frontend_script_path = $assets_path . 'js/';
605
- if ( isset( $post ) && $post->ID == woocommerce_get_page_id( 'revocation' ) )
606
- wp_enqueue_script( 'wc-gzd-revocation', $frontend_script_path . 'revocation.js', array( 'jquery', 'woocommerce', 'wc-country-select', 'wc-address-i18n' ), WC_GERMANIZED_VERSION, true );
 
 
607
  if ( is_checkout() )
608
- wp_enqueue_script( 'wc-gzd-checkout', $frontend_script_path . 'checkout.js', array( 'jquery', 'wc-checkout' ), WC_GERMANIZED_VERSION, true );
 
609
  if ( is_singular( 'product' ) ) {
610
  $product = wc_get_product( $post->ID );
611
  if ( $product && $product->is_type( 'variable' ) ) {
612
  // Enqueue variation scripts
613
  wp_enqueue_script( 'wc-add-to-cart-variation' );
614
- wp_enqueue_script( 'wc-gzd-add-to-cart-variation', $frontend_script_path . 'add-to-cart-variation.js', array( 'jquery', 'woocommerce' ), WC_GERMANIZED_VERSION, true );
615
  }
616
  }
617
  }
@@ -769,23 +766,11 @@ final class WooCommerce_Germanized {
769
  public function set_virtual_product_price( $price, $qty, $product ) {
770
  if ( ! $product->gzd_product->is_virtual_vat_exception() || ! isset( WC()->cart ) || ! WC()->cart->is_virtual_taxable() )
771
  return $price;
772
- if ( get_option('woocommerce_prices_include_tax') === 'yes' )
773
  return $product->get_price() * $qty;
774
  return $price;
775
  }
776
 
777
- /**
778
- * Update fee for cart if feeable gateway has been selected as payment method
779
- */
780
- public function add_fee_cart() {
781
- $gateways = WC()->payment_gateways()->get_available_payment_gateways();
782
- if ( ! ( $key = WC()->session->get('chosen_payment_method') ) || ! isset( $gateways[ $key ] ) )
783
- return;
784
- $gateway = $gateways[ $key ];
785
- if ( isset( $gateway->parent ) && is_callable( array( $gateway->parent, 'add_fee' ) ) )
786
- $gateway->parent->add_fee();
787
- }
788
-
789
  /**
790
  * Improve tax display within order totals
791
  *
@@ -794,10 +779,10 @@ final class WooCommerce_Germanized {
794
  * @return array
795
  */
796
  public function order_item_totals( $order_totals, $order ) {
797
- $order_totals['order_total'] = array(
798
- 'label' => __( 'Order Total:', 'woocommerce' ),
799
- 'value' => $order->get_formatted_order_total()
800
- );
801
  // Tax for inclusive prices
802
  if ( 'yes' == get_option( 'woocommerce_calc_taxes' ) && 'incl' == $order->tax_display_cart ) {
803
 
@@ -831,6 +816,25 @@ final class WooCommerce_Germanized {
831
  return $order_totals;
832
  }
833
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
834
  }
835
 
836
  endif;
1
  <?php
2
  /**
3
  * Plugin Name: WooCommerce Germanized
4
+ * Plugin URI: https://www.vendidero.de/woocommerce-germanized
5
  * Description: Extends WooCommerce to become a legally compliant store for the german market.
6
+ * Version: 1.3.0
7
  * Author: Vendidero
8
+ * Author URI: https://vendidero.de
9
  * Requires at least: 3.8
10
+ * Tested up to: 4.2
11
  *
12
  * Text Domain: woocommerce-germanized
13
  * Domain Path: /i18n/languages/
26
  *
27
  * @var string
28
  */
29
+ public $version = '1.3.0';
30
 
31
  /**
32
  * Single instance of WooCommerce Germanized Main Class
111
  spl_autoload_register( "__autoload" );
112
  spl_autoload_register( array( $this, 'autoload' ) );
113
 
114
+ // Check if dependecies are installed
115
+ $init = WC_GZD_Dependencies::instance();
116
+ if ( ! $init->is_loadable() )
117
+ return;
118
 
119
  // Define constants
120
  $this->define_constants();
129
  add_action( 'widgets_init', array( $this, 'include_widgets' ), 25 );
130
  add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) );
131
  add_action( 'woocommerce_init', array( $this, 'replace_woocommerce_cart' ), 0 );
 
132
  add_action( 'woocommerce_init', array( $this, 'replace_woocommerce_product_factory' ), PHP_INT_MAX );
133
 
134
  // Loaded action
136
 
137
  }
138
 
 
 
 
 
 
139
  /**
140
+ * Checks if is pro user
141
  *
142
+ * @return boolean
143
  */
144
+ public function is_pro() {
145
+ return WC_GZD_Dependencies::instance()->is_plugin_activated( 'woocommerce-germanized-pro/woocommerce-germanized-pro.php' );
 
 
 
 
 
 
146
  }
147
 
148
  /**
153
  do_action( 'before_woocommerce_germanized_init' );
154
 
155
  add_filter( 'woocommerce_locate_template', array( $this, 'filter_templates' ), PHP_INT_MAX, 3 );
156
+
157
+ if ( version_compare( WC()->version, '2.3', '<' ) ) {
158
  add_filter( 'woocommerce_gzd_default_plugin_template', array( $this, 'filter_templates_old_version' ), 0, 2 );
159
+ } else {
160
+ add_filter( 'woocommerce_gzd_important_templates', array( $this, 'set_critical_templates_2_3' ) );
161
+ if ( get_option( 'woocommerce_gzd_display_checkout_fallback' ) == 'yes' )
162
+ add_filter( 'woocommerce_gzd_template_name', array( $this, 'set_review_order_fallback' ) );
163
+ }
164
+
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' ) );
168
  add_action( 'wp_enqueue_scripts', array( $this, 'add_inline_styles' ) );
 
169
  add_action( 'wp_print_scripts', array( $this, 'localize_scripts' ), 5 );
170
  add_filter( 'woocommerce_email_classes', array( $this, 'add_emails' ) );
171
  add_filter( 'woocommerce_locate_core_template', array( $this, 'email_templates' ), 0, 3 );
173
 
174
  // Add better tax display to order totals
175
  add_filter( 'woocommerce_get_order_item_totals', array( $this, 'order_item_totals' ), 0, 2 );
176
+ // Unsure wether this could lead to future problems - tax classes with same name wont be merged anylonger
177
+ //add_filter( 'woocommerce_rate_code', array( $this, 'prevent_tax_name_merge' ), PHP_INT_MAX, 2 );
178
 
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 );
196
  add_action( 'template_redirect', array( $this, 'customer_account_activation_check' ) );
197
  add_action( 'woocommerce_gzd_customer_cleanup', array( WC_GZD_Admin_Customer::instance(), 'account_cleanup' ) );
198
 
199
+ // Remove cart subtotal filter
200
+ add_action( 'template_redirect', array( $this, 'remove_cart_unit_price_filter' ) );
201
+
202
  // Remove processing + on-hold default order confirmation mails
203
  $mailer = WC()->mailer();
204
  $mails = $mailer->get_emails();
217
  do_action( 'woocommerce_germanized_init' );
218
  }
219
 
 
 
 
 
 
 
 
220
  /**
221
  * Overload product factory to inject gzd_product
222
  */
248
  $class = strtolower( $class );
249
  $file = 'class-' . str_replace( '_', '-', $class ) . '.php';
250
 
251
+ if ( strpos( $class, 'wc_gzd_admin_' ) === 0 )
 
 
252
  $path = $this->plugin_path() . '/includes/admin/';
253
 
254
  if ( version_compare( get_option( 'woocommerce_version' ), '2.3', '<' ) ) {
332
 
333
  // Post types
334
  include_once ( 'includes/class-wc-gzd-post-types.php' );
335
+ // Gateway manipulation
336
+ include_once ( 'includes/class-wc-gzd-payment-gateways.php' );
337
 
338
  // Abstracts
339
  include_once ( 'includes/abstracts/abstract-wc-gzd-product.php' );
340
+
341
+ include_once ( 'includes/class-wc-gzd-wpml-helper.php' );
342
 
343
  include_once ( 'includes/wc-gzd-cart-functions.php' );
344
  include_once ( 'includes/class-wc-gzd-checkout.php' );
378
  public function filter_templates( $template, $template_name, $template_path ) {
379
  $template_path = $this->template_path();
380
 
381
+ if ( ! isset( $GLOBALS[ 'wc_gzd_template_name' ] ) || empty( $GLOBALS[ 'wc_gzd_template_name' ] ) || ! is_array( $GLOBALS[ 'wc_gzd_template_name' ] ) )
382
+ $GLOBALS['wc_gzd_template_name'] = array();
383
+ $GLOBALS['wc_gzd_template_name'][] = $template_name;
384
 
385
  // Check Theme
386
  $theme_template = locate_template(
390
  )
391
  );
392
 
393
+ $template_name = apply_filters( 'woocommerce_gzd_template_name', $template_name );
394
+
395
  // Load Default
396
  if ( ! $theme_template && file_exists( apply_filters( 'woocommerce_gzd_default_plugin_template', $this->plugin_path() . '/templates/' . $template_name, $template_name ) ) )
397
  return apply_filters( 'woocommerce_gzd_default_plugin_template', $this->plugin_path() . '/templates/' . $template_name, $template_name );
424
  return apply_filters( 'woocommerce_gzd_important_templates', array( 'checkout/form-pay.php', 'checkout/review-order.php' ) );
425
  }
426
 
427
+ /**
428
+ * Sets WC 2.3 critical templates (if fallback mode is used don't remove review-order.php)
429
+ *
430
+ * @param array $templates
431
+ * @return array
432
+ */
433
+ public function set_critical_templates_2_3( $templates ) {
434
+ $templates = array_diff( $templates, array( 'checkout/form-pay.php' ) );
435
+ if ( get_option( 'woocommerce_gzd_display_checkout_fallback' ) != 'yes' )
436
+ $templates = array_diff( $templates, array( 'checkout/review-order.php' ) );
437
+ return $templates;
438
+ }
439
+
440
+ /**
441
+ * Sets review-order.php fallback (if activated) by filtering template name.
442
+ *
443
+ * @param string $template_name
444
+ * @return string
445
+ */
446
+ public function set_review_order_fallback( $template_name ) {
447
+ if ( strstr( $template_name, "review-order.php" ) )
448
+ return 'checkout/review-order-fallback.php';
449
+ return $template_name;
450
+ }
451
+
452
  /**
453
  * Inject WC_GZD_Product into WC_Product by filtering postmeta - fallback if not using wc_get_product
454
  *
468
  * Replace the default WC_Cart by WC_GZD_Cart for EU virtual VAT rules.
469
  */
470
  public function replace_woocommerce_cart() {
471
+ if ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) == 'yes' && ( ! is_admin() || defined( 'DOING_AJAX' ) ) && ! defined( 'DOING_CRON' ) )
472
  WC()->cart = new WC_GZD_Cart();
473
  }
474
 
 
 
 
 
 
 
 
 
 
 
 
 
475
  /**
476
  * Calls a filter to temporarily set cart tax to zero. This is only done to hide the cart tax estimated text.
477
  * Filter is being remove right after get_cart_tax - check has been finished within cart-totals.php
499
  remove_filter( 'woocommerce_get_cart_tax', array( $this, 'set_cart_tax_zero' ) );
500
  }
501
 
 
 
 
 
 
 
 
 
 
502
  /**
503
  * Load WooCommerce Germanized Product Classes instead of WooCommerce builtin Product Classes
504
  *
560
  ), $links );
561
  }
562
 
 
 
 
 
 
 
 
 
563
  /**
564
  * Add styles to frontend
565
  *
566
  * @param array $styles
567
  */
568
  public function add_styles( $styles ) {
569
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
570
+
571
  $styles['woocommerce-gzd-layout'] = array(
572
+ 'src' => str_replace( array( 'http:', 'https:' ), '', WC_germanized()->plugin_url() ) . '/assets/css/woocommerce-gzd-layout' . $suffix . '.css',
573
  'deps' => '',
574
  'version' => WC_GERMANIZED_VERSION,
575
  'media' => 'all'
576
  );
577
+
578
  return $styles;
579
  }
580
 
592
  */
593
  public function add_scripts() {
594
  global $post;
595
+
596
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
597
  $assets_path = str_replace( array( 'http:', 'https:' ), '', WC_germanized()->plugin_url() ) . '/assets/';
598
  $frontend_script_path = $assets_path . 'js/';
599
+
600
+ if ( is_page() )
601
+ wp_enqueue_script( 'wc-gzd-revocation', $frontend_script_path . 'revocation' . $suffix . '.js', array( 'jquery', 'woocommerce', 'wc-country-select', 'wc-address-i18n' ), WC_GERMANIZED_VERSION, true );
602
+
603
  if ( is_checkout() )
604
+ wp_enqueue_script( 'wc-gzd-checkout', $frontend_script_path . 'checkout' . $suffix . '.js', array( 'jquery', 'wc-checkout' ), WC_GERMANIZED_VERSION, true );
605
+
606
  if ( is_singular( 'product' ) ) {
607
  $product = wc_get_product( $post->ID );
608
  if ( $product && $product->is_type( 'variable' ) ) {
609
  // Enqueue variation scripts
610
  wp_enqueue_script( 'wc-add-to-cart-variation' );
611
+ wp_enqueue_script( 'wc-gzd-add-to-cart-variation', $frontend_script_path . 'add-to-cart-variation' . $suffix . '.js', array( 'jquery', 'woocommerce' ), WC_GERMANIZED_VERSION, true );
612
  }
613
  }
614
  }
766
  public function set_virtual_product_price( $price, $qty, $product ) {
767
  if ( ! $product->gzd_product->is_virtual_vat_exception() || ! isset( WC()->cart ) || ! WC()->cart->is_virtual_taxable() )
768
  return $price;
769
+ if ( get_option( 'woocommerce_prices_include_tax' ) === 'yes' )
770
  return $product->get_price() * $qty;
771
  return $price;
772
  }
773
 
 
 
 
 
 
 
 
 
 
 
 
 
774
  /**
775
  * Improve tax display within order totals
776
  *
779
  * @return array
780
  */
781
  public function order_item_totals( $order_totals, $order ) {
782
+
783
+ // Set to formatted total without displaying tax info behind the price
784
+ $order_totals['order_total']['value'] = $order->get_formatted_order_total();
785
+
786
  // Tax for inclusive prices
787
  if ( 'yes' == get_option( 'woocommerce_calc_taxes' ) && 'incl' == $order->tax_display_cart ) {
788
 
816
  return $order_totals;
817
  }
818
 
819
+ /**
820
+ * Remove cart unit price subtotal filter
821
+ */
822
+ public function remove_cart_unit_price_filter() {
823
+ if ( is_cart() )
824
+ remove_filter( 'woocommerce_cart_item_subtotal', 'wc_gzd_cart_product_unit_price', 0, 2 );
825
+ }
826
+
827
+ /**
828
+ * Prevent tax class merging. Could lead to future problems - not yet implemented
829
+ *
830
+ * @param string $code tax class code
831
+ * @param int $rate_id
832
+ * @return string unique tax class code
833
+ */
834
+ public function prevent_tax_name_merge( $code, $rate_id ) {
835
+ return $code . '-' . $rate_id;
836
+ }
837
+
838
  }
839
 
840
  endif;
wpml-config.xml ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <wpml-config>
2
+ <admin-texts>
3
+ <key name="woocommerce_gzd_*_text*" />
4
+ </admin-texts>
5
+ </wpml-config>