WooCommerce Germanized - Version 1.8.4

Version Description

  • Feature - DHL Parcel Shop or Pick-Up Station delivery
  • Fix - Sale Price Labels Price Suffixes HTML
  • Fix - Partial refunded order email legal item information
  • Fix - Hook priority for product units in loop
  • Fix - Parcel delivery checkbox validation
Download this release

Release Info

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

Code changes from version 1.8.3 to 1.8.4

Files changed (40) hide show
  1. assets/css/woocommerce-gzd-admin.css +5 -0
  2. assets/css/woocommerce-gzd-admin.min.css +1 -1
  3. assets/css/woocommerce-gzd-dhl-parcel-shop-finder.css +55 -0
  4. assets/css/woocommerce-gzd-dhl-parcel-shop-finder.min.css +1 -0
  5. assets/css/woocommerce-gzd-layout.css +4 -0
  6. assets/css/woocommerce-gzd-layout.min.css +1 -1
  7. assets/images/dhl-packstation.png +0 -0
  8. assets/js/checkout-dhl-parcel-shops.js +172 -0
  9. assets/js/checkout-dhl-parcel-shops.min.js +1 -0
  10. assets/js/checkout.js +2 -1
  11. i18n/languages/woocommerce-germanized-de_DE.mo +0 -0
  12. i18n/languages/woocommerce-germanized-de_DE.po +214 -93
  13. i18n/languages/woocommerce-germanized-de_DE_formal.mo +0 -0
  14. i18n/languages/woocommerce-germanized-de_DE_formal.po +203 -94
  15. includes/abstracts/abstract-wc-gzd-compatibility.php +6 -6
  16. includes/abstracts/abstract-wc-gzd-product.php +7 -7
  17. includes/admin/class-wc-gzd-admin-welcome.php +11 -5
  18. includes/admin/class-wc-gzd-admin.php +1 -1
  19. includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php +1 -1
  20. includes/admin/settings/class-wc-gzd-settings-germanized.php +26 -0
  21. includes/api/class-wc-gzd-rest-api.php +1 -1
  22. includes/api/class-wc-gzd-rest-orders-controller.php +25 -0
  23. includes/class-wc-gzd-checkout.php +78 -14
  24. includes/class-wc-gzd-dhl-parcel-shops.php +261 -0
  25. includes/class-wc-gzd-emails.php +25 -5
  26. includes/class-wc-gzd-hook-priorities.php +1 -1
  27. includes/class-wc-gzd-install.php +7 -6
  28. includes/class-wc-gzd-product-variable.php +11 -1
  29. includes/class-wc-gzd-virtual-vat-helper.php +3 -3
  30. includes/compatibility/class-wc-gzd-compatibility-wpml.php +1 -1
  31. includes/gateways/direct-debit/libraries/php-sepa-xml/.travis.yml +0 -14
  32. includes/updates/woocommerce-gzd-update-1.8.0.php +5 -0
  33. includes/wc-gzd-cart-functions.php +10 -2
  34. includes/wc-gzd-core-functions.php +4 -0
  35. includes/wc-gzd-legacy-functions.php +6 -6
  36. includes/wc-gzd-template-functions.php +1 -1
  37. readme.txt +19 -2
  38. templates/checkout/dhl-parcel-shop-finder.php +21 -0
  39. uninstall.php +108 -0
  40. woocommerce-germanized.php +194 -149
assets/css/woocommerce-gzd-admin.css CHANGED
@@ -152,6 +152,11 @@ table.wc-gzd-tax-example tr th:first-child, table.wc-gzd-tax-example tr td:first
152
  width: 100%;
153
  }
154
 
 
 
 
 
 
155
  .wc-gzd-text-red {
156
  color: red;
157
  }
152
  width: 100%;
153
  }
154
 
155
+ #order_data ._shipping_parcelshop_post_number_field {
156
+ clear: left;
157
+ width: 100% !important;
158
+ }
159
+
160
  .wc-gzd-text-red {
161
  color: red;
162
  }
assets/css/woocommerce-gzd-admin.min.css CHANGED
@@ -1 +1 @@
1
- .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}.wc-gzd-admin-settings-agbs,.wc-gzd-admin-settings-sidebar img,.wc-gzd-admin-settings-widerruf{width:100%}.wc-gzd-button{background-color:#7b9f35!important}.wc-gzd-button:hover{background-color:#73982a!important}.wc-gzd-pro:hover,.wc-gzd-pro:visited{color:#FFF}.wc-gzd-button,.wc-gzd-button:hover{border:1px solid #557020!important;text-shadow:none!important}table.form-table .forminp-radio fieldset p{margin-bottom:1em}p._unit_price_auto_field label{display:block!important;margin-bottom:5px}.woocommerce-gzd-message ul{margin-left:20px}.woocommerce-gzd-message ul li{list-style:disc}.wc-gzd-admin-settings,.wc-gzd-admin-settings-sidebar{display:inline-block;box-sizing:border-box;vertical-align:top}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-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-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-premium-section-tab{background:#e4e4e4;border:1px solid #CCC;color:#555;padding:0 3px}.wc-gzd-pro{background:#222;font-style:normal;opacity:1!important;text-decoration:none}.tourbus-leg-inner .wc-gzd-pro{top:-3px}.forminp-image img,.wc-gzd-premium img{width:100%;height:auto;opacity:.7}.woocommerce table.form-table th.forminp-image{padding-right:0}._unit_price_auto_field .wc-gzd-premium-desc,._unit_price_auto_field input,._unit_price_auto_field label{opacity:.6}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}.wc-gzd-admin-settings tbody.ui-sortable tr:hover{cursor:move}#order_data .order_data_column ._direct_debit_bic_field,#order_data .order_data_column ._direct_debit_holder_field,#order_data .order_data_column ._direct_debit_iban_field,#order_data .order_data_column ._direct_debit_reference_field{clear:left;width:100%!important}#order_data .order_data_column ._direct_debit_bic_field input,#order_data .order_data_column ._direct_debit_holder_field input,#order_data .order_data_column ._direct_debit_iban_field input,#order_data .order_data_column ._direct_debit_reference_field input{width:100%}.wc-gzd-text-red{color:red}.wc-gzd-status-text{font-weight:600}.wc-gzd-text-green{color:green}.order_actions .xml{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.order_actions .xml:after{content:"\e00d";font-family:WooCommerce;text-indent:0;position:absolute;width:100%;height:100%;speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;top:0;left:0;line-height:1.85;margin:0;text-align:center;font-weight:400}
1
+ .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}.wc-gzd-admin-settings-agbs,.wc-gzd-admin-settings-sidebar img,.wc-gzd-admin-settings-widerruf{width:100%}.wc-gzd-button{background-color:#7b9f35!important}.wc-gzd-button:hover{background-color:#73982a!important}.wc-gzd-pro:hover,.wc-gzd-pro:visited{color:#FFF}.wc-gzd-button,.wc-gzd-button:hover{border:1px solid #557020!important;text-shadow:none!important}#order_data ._shipping_parcelshop_post_number_field{clear:left;width:100%!important}table.form-table .forminp-radio fieldset p{margin-bottom:1em}p._unit_price_auto_field label{display:block!important;margin-bottom:5px}.woocommerce-gzd-message ul{margin-left:20px}.woocommerce-gzd-message ul li{list-style:disc}.wc-gzd-admin-settings,.wc-gzd-admin-settings-sidebar{display:inline-block;box-sizing:border-box;vertical-align:top}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-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-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-premium-section-tab{background:#e4e4e4;border:1px solid #CCC;color:#555;padding:0 3px}.wc-gzd-pro{background:#222;font-style:normal;opacity:1!important;text-decoration:none}.tourbus-leg-inner .wc-gzd-pro{top:-3px}.forminp-image img,.wc-gzd-premium img{width:100%;height:auto;opacity:.7}.woocommerce table.form-table th.forminp-image{padding-right:0}._unit_price_auto_field .wc-gzd-premium-desc,._unit_price_auto_field input,._unit_price_auto_field label{opacity:.6}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}.wc-gzd-admin-settings tbody.ui-sortable tr:hover{cursor:move}#order_data .order_data_column ._direct_debit_bic_field,#order_data .order_data_column ._direct_debit_holder_field,#order_data .order_data_column ._direct_debit_iban_field,#order_data .order_data_column ._direct_debit_reference_field{clear:left;width:100%!important}#order_data .order_data_column ._direct_debit_bic_field input,#order_data .order_data_column ._direct_debit_holder_field input,#order_data .order_data_column ._direct_debit_iban_field input,#order_data .order_data_column ._direct_debit_reference_field input{width:100%}.wc-gzd-text-red{color:red}.wc-gzd-status-text{font-weight:600}.wc-gzd-text-green{color:green}.order_actions .xml{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.order_actions .xml:after{content:"\e00d";font-family:WooCommerce;text-indent:0;position:absolute;width:100%;height:100%;speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;top:0;left:0;line-height:1.85;margin:0;text-align:center;font-weight:400}
assets/css/woocommerce-gzd-dhl-parcel-shop-finder.css ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #wc-gzd-parcel-shop-finder-iframe-wrapper {
2
+ position: relative;
3
+ z-index: 99999;
4
+ }
5
+
6
+ #wc-gzd-parcel-finder-background-overlay {
7
+ display: none;
8
+ position: fixed;
9
+ top: 0;
10
+ left: 0;
11
+ bottom: 0;
12
+ right: 0;
13
+ background-color: rgba(0, 0, 0, .45);
14
+ cursor: pointer
15
+ }
16
+
17
+ #wc-gzd-parcel-finder-iframe-overlay {
18
+ width: 90%;
19
+ height: 90%;
20
+ position: fixed;
21
+ left: 5%;
22
+ top: 5%;
23
+ overflow: hidden;
24
+ -webkit-border-radius: 5px
25
+ }
26
+
27
+ #wc-gzd-parcel-finder-iframe {
28
+ width: 90%;
29
+ height: 90%;
30
+ position: fixed;
31
+ left: 5%;
32
+ top: 5%;
33
+ border-radius: 5px;
34
+ border-style: hidden
35
+ }
36
+
37
+ #wc-gzd-parcel-finder-close-btn {
38
+ background: #d40511;
39
+ color: #fff;
40
+ position: fixed;
41
+ z-index: 100;
42
+ font-family: 'Helvetica', 'Arial', sans-serif;
43
+ font-size: 1em;
44
+ font-weight: bold;
45
+ text-align: center;
46
+ width: 20px;
47
+ height: 20px;
48
+ border-radius: 0;
49
+ box-shadow: none;
50
+ cursor: pointer
51
+ }
52
+
53
+ #wc-gzd-parcel-finder-close-btn:hover {
54
+ background: #9d0415
55
+ }
assets/css/woocommerce-gzd-dhl-parcel-shop-finder.min.css ADDED
@@ -0,0 +1 @@
 
1
+ #wc-gzd-parcel-shop-finder-iframe-wrapper{position:relative;z-index:99999}#wc-gzd-parcel-finder-background-overlay{display:none;position:fixed;top:0;left:0;bottom:0;right:0;background-color:rgba(0,0,0,.45);cursor:pointer}#wc-gzd-parcel-finder-iframe-overlay{width:90%;height:90%;position:fixed;left:5%;top:5%;overflow:hidden;-webkit-border-radius:5px}#wc-gzd-parcel-finder-iframe{width:90%;height:90%;position:fixed;left:5%;top:5%;border-radius:5px;border-style:hidden}#wc-gzd-parcel-finder-close-btn{background:#d40511;color:#fff;position:fixed;z-index:100;font-family:Helvetica,Arial,sans-serif;font-size:1em;font-weight:700;text-align:center;width:20px;height:20px;border-radius:0;box-shadow:none;cursor:pointer}#wc-gzd-parcel-finder-close-btn:hover{background:#9d0415}
assets/css/woocommerce-gzd-layout.css CHANGED
@@ -116,4 +116,8 @@ table.product-details-inner tr td:last-child {
116
  #eKomiSeal_default img {
117
  width: 100% !important;
118
  height: 100% !important;
 
 
 
 
119
  }
116
  #eKomiSeal_default img {
117
  width: 100% !important;
118
  height: 100% !important;
119
+ }
120
+ .wc-gzd-parcel-finder-open-button {
121
+ display: inline;
122
+ margin-left: 5px;
123
  }
assets/css/woocommerce-gzd-layout.min.css CHANGED
@@ -1 +1 @@
1
- .cart_totals .wc-gzd-additional-wrapper,.entry-content .woocommerce .checkout-btn-wrap,.shop_table .product-name-inner tr td:last-child{text-align:right}.wc-gzd-item-desc p{font-size:.9em}#order_review .legal{text-align:left;padding:0 1em 0 0;float:left}.cart_totals .wc-gzd-additional-wrapper,.entry-content .woocommerce .checkout-btn-wrap,.shop_table .product-name-inner tr td:last-child{text-align:right}#order_review .legal label{display:inline}.woocommerce-checkout .shop_table{background-color:#EEE}.includes_tax,.tax_label{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}.woocommerce #payment .wc-terms-and-conditions{display:none!important}.woocommerce-checkout p.direct-debit-checkbox{display:none}.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;clear:left}.product .product_meta{margin-top:1rem}p.footer-info{text-align:center;padding-bottom:.5rem}.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-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}
1
+ .cart_totals .wc-gzd-additional-wrapper,.entry-content .woocommerce .checkout-btn-wrap,.shop_table .product-name-inner tr td:last-child{text-align:right}.wc-gzd-parcel-finder-open-button{display:inline;margin-left:5px}.wc-gzd-item-desc p{font-size:.9em}#order_review .legal{text-align:left;padding:0 1em 0 0;float:left}.cart_totals .wc-gzd-additional-wrapper,.entry-content .woocommerce .checkout-btn-wrap,.shop_table .product-name-inner tr td:last-child{text-align:right}#order_review .legal label{display:inline}.woocommerce-checkout .shop_table{background-color:#EEE}.includes_tax,.tax_label{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}.woocommerce #payment .wc-terms-and-conditions{display:none!important}.woocommerce-checkout p.direct-debit-checkbox{display:none}.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;clear:left}.product .product_meta{margin-top:1rem}p.footer-info{text-align:center;padding-bottom:.5rem}.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-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}
assets/images/dhl-packstation.png ADDED
Binary file
assets/js/checkout-dhl-parcel-shops.js ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery( function( $ ) {
2
+
3
+ var wc_gzd_dhl_parcel_shops = {
4
+
5
+ $parcelFinderButtonWrapper: $( wc_gzd_dhl_parcel_shops_params.button_wrapper ),
6
+ $parcelFinderWrapper: $( wc_gzd_dhl_parcel_shops_params.iframe_wrapper ),
7
+ $parcelCheckboxField: $( '#shipping_parcelshop_field' ),
8
+ params: wc_gzd_dhl_parcel_shops_params,
9
+ defaultAddressFieldLabel: '',
10
+ defaultAddressFieldPlaceholder: '',
11
+ supportedCountries: [],
12
+
13
+ init: function() {
14
+
15
+ if ( wc_gzd_dhl_parcel_shops.params.enable_finder ) {
16
+ this.initParcelFinder();
17
+ }
18
+
19
+ this.initDefaultData();
20
+
21
+ this.$parcelCheckboxField.on( 'change', '#shipping_parcelshop', this.parcelCheckboxChanged );
22
+ $( document ).on( 'change', '#shipping_country', this.shippingCountryChanged );
23
+
24
+ this.parcelCheckboxChanged( true );
25
+ },
26
+
27
+ initDefaultData: function() {
28
+ this.supportedCountries = this.params.supported_countries;
29
+ this.defaultAddressFieldLabel = $( '#shipping_address_1_field' ).find( 'label' ).contents().filter( function() {
30
+ return this.nodeType == 3;
31
+ }).text();
32
+ this.defaultAddressFieldPlaceholder = $( '#shipping_address_1' ).attr( 'placeholder' );
33
+ },
34
+
35
+ shippingCountryChanged: function() {
36
+
37
+ var country = $( '#shipping_country' ).val();
38
+
39
+ if ( $.inArray( country, wc_gzd_dhl_parcel_shops.params.supported_countries ) !== -1 ) {
40
+ wc_gzd_dhl_parcel_shops.$parcelCheckboxField.show();
41
+ } else {
42
+ $( '#shipping_parcelshop' ).prop( 'checked', false );
43
+ wc_gzd_dhl_parcel_shops.$parcelCheckboxField.hide();
44
+ }
45
+
46
+ wc_gzd_dhl_parcel_shops.parcelCheckboxChanged( false );
47
+ },
48
+
49
+ parcelCheckboxChanged: function( afterLoad ) {
50
+
51
+ if ( typeof afterLoad === 'undefined' || $.type( afterLoad ) !== 'boolean' ) {
52
+ afterLoad = false;
53
+ }
54
+
55
+ var label = $( '#shipping_address_1_field' ).find( 'label' );
56
+
57
+ if ( $( '#shipping_parcelshop' ).is( ':checked' ) ) {
58
+
59
+ wc_gzd_dhl_parcel_shops.showFinderButton();
60
+
61
+ // Check if checkbox is checked on load (customer has already chosen option before so there is no need to clean the address input)
62
+ if ( ! afterLoad && wc_gzd_dhl_parcel_shops.$parcelCheckboxField.hasClass( 'first-check' ) ) {
63
+ $( '#shipping_address_1' ).val( '' );
64
+ wc_gzd_dhl_parcel_shops.$parcelCheckboxField.removeClass( 'first-check' );
65
+ } else if ( afterLoad ) {
66
+ wc_gzd_dhl_parcel_shops.$parcelCheckboxField.removeClass( 'first-check' );
67
+ }
68
+
69
+ $( '#shipping_parcelshop_post_number_field' ).show();
70
+
71
+ label.contents().filter( function() {
72
+ return this.nodeType == 3;
73
+ }).first().replaceWith( wc_gzd_dhl_parcel_shops.params.address_field_title + ' ' );
74
+
75
+ $( '#shipping_address_1' ).attr( 'placeholder', wc_gzd_dhl_parcel_shops.params.address_field_placeholder );
76
+
77
+ if ( $( '#shipping_country' ).val() === 'DE' ) {
78
+ $( '#shipping_address_2' ).val( '' );
79
+ $( '#shipping_address_2' ).hide();
80
+ } else {
81
+ $( '#shipping_address_2' ).show();
82
+ }
83
+
84
+ } else {
85
+
86
+ wc_gzd_dhl_parcel_shops.hideFinderButton();
87
+
88
+ label.contents().filter( function() {
89
+ return this.nodeType == 3;
90
+ }).first().replaceWith( wc_gzd_dhl_parcel_shops.defaultAddressFieldLabel );
91
+
92
+ $( '#shipping_address_1' ).attr( 'placeholder', wc_gzd_dhl_parcel_shops.defaultAddressFieldPlaceholder );
93
+ $( '#shipping_parcelshop_post_number_field' ).hide();
94
+ }
95
+
96
+ },
97
+
98
+ initParcelFinder: function() {
99
+
100
+ this.$parcelFinderButtonWrapper.hide();
101
+ this.$parcelFinderWrapper.find( '#wc-gzd-parcel-finder-background-overlay' ).hide();
102
+ this.$parcelFinderWrapper.on( 'click', '#wc-gzd-parcel-finder-background-overlay', this.closeParcelFinder );
103
+ this.$parcelFinderWrapper.on( 'click', '#wc-gzd-parcel-finder-close-btn', this.closeParcelFinder );
104
+ this.$parcelFinderButtonWrapper.on( 'click', '.wc-gzd-parcel-finder-open-button', this.openParcelFinder );
105
+
106
+ $( window ).on( 'message', this.saveParcelFinder );
107
+ },
108
+
109
+ showFinderButton: function() {
110
+
111
+ if ( wc_gzd_dhl_parcel_shops.params.enable_finder ) {
112
+ wc_gzd_dhl_parcel_shops.$parcelFinderButtonWrapper.show();
113
+ }
114
+
115
+ },
116
+
117
+ hideFinderButton: function() {
118
+
119
+ if ( wc_gzd_dhl_parcel_shops.params.enable_finder ) {
120
+ wc_gzd_dhl_parcel_shops.$parcelFinderButtonWrapper.hide();
121
+ }
122
+
123
+ },
124
+
125
+ saveParcelFinder: function(e) {
126
+ var c = JSON.parse( e.originalEvent.data );
127
+ var country = c.countryCode.toUpperCase();
128
+
129
+ $( '.wc-gzd-parcel-finder-shipping-country-error' ).remove();
130
+
131
+ if ( $.inArray( country, wc_gzd_dhl_parcel_shops.supportedCountries ) !== -1 ) {
132
+ $( '#shipping_country' ).val( c.countryCode.toUpperCase() ).trigger( 'change' );
133
+ $( '#shipping_address_1' ).val( c.keyWord + ' ' + c.primaryKeyZipRegion );
134
+ $( '#shipping_address_2' ).val( c.street + ' ' + c.houseNo );
135
+ $( '#shipping_city' ).val( c.city );
136
+ $( '#shipping_postcode' ).val( c.zipCode );
137
+ } else {
138
+
139
+ if ( $( '.woocommerce-error' ).length > 0 ) {
140
+ $( '.woocommerce-error' ).append( '<li class="wc-gzd-parcel-finder-shipping-country-error">' + wc_gzd_dhl_parcel_shops.params.shipping_country_error + '</li>' );
141
+ } else {
142
+ $( 'form.woocommerce-checkout' ).prepend( '<ul class="woocommerce-error wc-gzd-parcel-finder-shipping-country-error"><li>' + wc_gzd_dhl_parcel_shops.params.shipping_country_error + '</li></ul>' );
143
+ }
144
+
145
+ // Scroll to top
146
+ $( 'html, body' ).animate( {
147
+ scrollTop: ( $( 'form.checkout' ).offset().top - 100 )
148
+ }, 1000 );
149
+ }
150
+
151
+ if( c.countryCode === "de" ) {
152
+ $( '#shipping_address_2' ).val( "" );
153
+ }
154
+
155
+ wc_gzd_dhl_parcel_shops.closeParcelFinder();
156
+
157
+ },
158
+
159
+ openParcelFinder: function() {
160
+ wc_gzd_dhl_parcel_shops.$parcelFinderWrapper.find( 'iframe' ).attr( 'src', wc_gzd_dhl_parcel_shops.params.iframe_src );
161
+ wc_gzd_dhl_parcel_shops.$parcelFinderWrapper.find( '#wc-gzd-parcel-finder-background-overlay' ).show();
162
+ return false;
163
+ },
164
+
165
+ closeParcelFinder: function() {
166
+ wc_gzd_dhl_parcel_shops.$parcelFinderWrapper.find( '#wc-gzd-parcel-finder-background-overlay' ).hide();
167
+ }
168
+ };
169
+
170
+ wc_gzd_dhl_parcel_shops.init();
171
+
172
+ });
assets/js/checkout-dhl-parcel-shops.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(a){var b={$parcelFinderButtonWrapper:a(wc_gzd_dhl_parcel_shops_params.button_wrapper),$parcelFinderWrapper:a(wc_gzd_dhl_parcel_shops_params.iframe_wrapper),$parcelCheckboxField:a("#shipping_parcelshop_field"),params:wc_gzd_dhl_parcel_shops_params,defaultAddressFieldLabel:"",defaultAddressFieldPlaceholder:"",supportedCountries:[],init:function(){b.params.enable_finder&&this.initParcelFinder(),this.initDefaultData(),this.$parcelCheckboxField.on("change","#shipping_parcelshop",this.parcelCheckboxChanged),a(document).on("change","#shipping_country",this.shippingCountryChanged),this.parcelCheckboxChanged(!0)},initDefaultData:function(){this.supportedCountries=this.params.supported_countries,this.defaultAddressFieldLabel=a("#shipping_address_1_field").find("label").contents().filter(function(){return 3==this.nodeType}).text(),this.defaultAddressFieldPlaceholder=a("#shipping_address_1").attr("placeholder")},shippingCountryChanged:function(){var c=a("#shipping_country").val();-1!==a.inArray(c,b.params.supported_countries)?b.$parcelCheckboxField.show():(a("#shipping_parcelshop").prop("checked",!1),b.$parcelCheckboxField.hide()),b.parcelCheckboxChanged(!1)},parcelCheckboxChanged:function(c){("undefined"==typeof c||"boolean"!==a.type(c))&&(c=!1);var d=a("#shipping_address_1_field").find("label");a("#shipping_parcelshop").is(":checked")?(b.showFinderButton(),!c&&b.$parcelCheckboxField.hasClass("first-check")?(a("#shipping_address_1").val(""),b.$parcelCheckboxField.removeClass("first-check")):c&&b.$parcelCheckboxField.removeClass("first-check"),a("#shipping_parcelshop_post_number_field").show(),d.contents().filter(function(){return 3==this.nodeType}).first().replaceWith(b.params.address_field_title+" "),a("#shipping_address_1").attr("placeholder",b.params.address_field_placeholder),"DE"===a("#shipping_country").val()?(a("#shipping_address_2").val(""),a("#shipping_address_2").hide()):a("#shipping_address_2").show()):(b.hideFinderButton(),d.contents().filter(function(){return 3==this.nodeType}).first().replaceWith(b.defaultAddressFieldLabel),a("#shipping_address_1").attr("placeholder",b.defaultAddressFieldPlaceholder),a("#shipping_parcelshop_post_number_field").hide())},initParcelFinder:function(){this.$parcelFinderButtonWrapper.hide(),this.$parcelFinderWrapper.find("#wc-gzd-parcel-finder-background-overlay").hide(),this.$parcelFinderWrapper.on("click","#wc-gzd-parcel-finder-background-overlay",this.closeParcelFinder),this.$parcelFinderWrapper.on("click","#wc-gzd-parcel-finder-close-btn",this.closeParcelFinder),this.$parcelFinderButtonWrapper.on("click",".wc-gzd-parcel-finder-open-button",this.openParcelFinder),a(window).on("message",this.saveParcelFinder)},showFinderButton:function(){b.params.enable_finder&&b.$parcelFinderButtonWrapper.show()},hideFinderButton:function(){b.params.enable_finder&&b.$parcelFinderButtonWrapper.hide()},saveParcelFinder:function(c){var d=JSON.parse(c.originalEvent.data),e=d.countryCode.toUpperCase();a(".wc-gzd-parcel-finder-shipping-country-error").remove(),-1!==a.inArray(e,b.supportedCountries)?(a("#shipping_country").val(d.countryCode.toUpperCase()).trigger("change"),a("#shipping_address_1").val(d.keyWord+" "+d.primaryKeyZipRegion),a("#shipping_address_2").val(d.street+" "+d.houseNo),a("#shipping_city").val(d.city),a("#shipping_postcode").val(d.zipCode)):(a(".woocommerce-error").length>0?a(".woocommerce-error").append('<li class="wc-gzd-parcel-finder-shipping-country-error">'+b.params.shipping_country_error+"</li>"):a("form.woocommerce-checkout").prepend('<ul class="woocommerce-error wc-gzd-parcel-finder-shipping-country-error"><li>'+b.params.shipping_country_error+"</li></ul>"),a("html, body").animate({scrollTop:a("form.checkout").offset().top-100},1e3)),"de"===d.countryCode&&a("#shipping_address_2").val(""),b.closeParcelFinder()},openParcelFinder:function(){return b.$parcelFinderWrapper.find("iframe").attr("src",b.params.iframe_src),b.$parcelFinderWrapper.find("#wc-gzd-parcel-finder-background-overlay").show(),!1},closeParcelFinder:function(){b.$parcelFinderWrapper.find("#wc-gzd-parcel-finder-background-overlay").hide()}};b.init()});
assets/js/checkout.js CHANGED
@@ -18,4 +18,5 @@ jQuery( function( $ ) {
18
  $( '.woocommerce-checkout' ).find( '#payment' ).after( $( '.woocommerce-checkout' ).find( '#order_review_heading' ) );
19
  $( '.woocommerce-checkout' ).find( '#order_review_heading' ).show();
20
  }
21
- });
 
18
  $( '.woocommerce-checkout' ).find( '#payment' ).after( $( '.woocommerce-checkout' ).find( '#order_review_heading' ) );
19
  $( '.woocommerce-checkout' ).find( '#order_review_heading' ).show();
20
  }
21
+
22
+ });
i18n/languages/woocommerce-germanized-de_DE.mo CHANGED
Binary file
i18n/languages/woocommerce-germanized-de_DE.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: WooCommerce Germanized v1.5.1\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2017-03-08 11:00+0100\n"
6
- "PO-Revision-Date: 2017-03-08 11:03+0100\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "Language: de_DE\n"
@@ -91,7 +91,7 @@ msgstr "l"
91
  # @ woocommerce-germanized
92
  #: includes/abstracts/abstract-wc-gzd-product.php:215
93
  #: includes/compatibility/class-wc-gzd-compatibility-woocommerce-subscriptions.php:72
94
- #: includes/wc-gzd-cart-functions.php:269 woocommerce-germanized.php:727
95
  msgid "incl. VAT"
96
  msgstr "inkl. MwSt."
97
 
@@ -103,7 +103,7 @@ msgstr "exkl. MwSt."
103
  # @ woocommerce-germanized
104
  #: includes/abstracts/abstract-wc-gzd-product.php:217
105
  #: includes/compatibility/class-wc-gzd-compatibility-woocommerce-subscriptions.php:72
106
- #: includes/wc-gzd-cart-functions.php:269 woocommerce-germanized.php:727
107
  #, php-format
108
  msgid "incl. %s%% VAT"
109
  msgstr "inkl. %s%% MwSt."
@@ -178,7 +178,7 @@ msgstr "Zahlungarten"
178
  # @ woocommerce-germanized
179
  #: includes/admin/class-wc-gzd-admin-status.php:43
180
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:280
181
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1108
182
  msgid "Shipping Methods"
183
  msgstr "Versandarten"
184
 
@@ -1503,14 +1503,68 @@ msgstr "Produkt enthält: {product_units} {unit}"
1503
  msgid "Checkout & Cart"
1504
  msgstr "Checkout & Warenkorb"
1505
 
1506
- # @ woocommerce-germanized
1507
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:891
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1508
  #: includes/admin/views/html-page-status-germanized.php:55
1509
  msgid "Fallback Mode"
1510
  msgstr "Fallback Modus"
1511
 
1512
  # @ woocommerce-germanized
1513
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:892
1514
  msgid ""
1515
  "Enable to make sure default checkout template is not being overriden by "
1516
  "theme."
@@ -1518,7 +1572,7 @@ msgstr ""
1518
  "Überschreiben relevanter Templates im Checkout durch dein Theme verhindern."
1519
 
1520
  # @ woocommerce-germanized
1521
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:896
1522
  msgid ""
1523
  "If you are facing problems within your checkout e.g. legally relevant data "
1524
  "is not showing (terms, delivery time, unit price etc.) your theme seems to "
@@ -1532,17 +1586,17 @@ msgstr ""
1532
  "Checkout (review-order.php und form-checkout.php) zu überschreiben. "
1533
 
1534
  # @ woocommerce-germanized
1535
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:900
1536
  msgid "Force free shipping"
1537
  msgstr "Versandmethode erzwingen"
1538
 
1539
  # @ woocommerce-germanized
1540
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:901
1541
  msgid "Force free shipping method if available?"
1542
  msgstr "Kostenlosen Versand erzwingen wenn die Methode zur Verfügung steht?"
1543
 
1544
  # @ woocommerce-germanized
1545
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:905
1546
  msgid ""
1547
  "By default WooCommerce will let customers choose other shipping methods than "
1548
  "free shipping (if available). This option will force free shipping if "
@@ -1553,18 +1607,18 @@ msgstr ""
1553
  "Versand, sobald dieser verfügbar ist."
1554
 
1555
  # @ woocommerce-germanized
1556
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:909
1557
  msgid "Hide taxes estimated"
1558
  msgstr "Hinweis \"Steuern geschätzt\""
1559
 
1560
  # @ woocommerce-germanized
1561
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:910
1562
  msgid ""
1563
  "Do you want to hide the \"taxes and shipping estimated\" text from your cart?"
1564
  msgstr "Den Hinweis \"Versandkosten und Steuern werden geschätzt\" entfernen?"
1565
 
1566
  # @ woocommerce-germanized
1567
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:914
1568
  msgid ""
1569
  "By default WooCommerce adds a \"taxes and shipping estimated\" text to your "
1570
  "cart. This might puzzle your customers and may not meet german law."
@@ -1574,17 +1628,17 @@ msgstr ""
1574
  "Markt geeignet."
1575
 
1576
  # @ woocommerce-germanized
1577
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:918
1578
  msgid "Show Thumbnails"
1579
  msgstr "Thumbnails anzeigen"
1580
 
1581
  # @ woocommerce-germanized
1582
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:919
1583
  msgid "Show product thumbnails on checkout page?"
1584
  msgstr "Produktbilder im Checkout darstellen?"
1585
 
1586
  # @ woocommerce-germanized
1587
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:923
1588
  msgid ""
1589
  "Uncheck if you don't want to show your product thumbnails within checkout "
1590
  "table."
@@ -1593,17 +1647,17 @@ msgstr ""
1593
  "bekommen möchtest."
1594
 
1595
  # @ woocommerce-germanized
1596
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:927
1597
  msgid "Hide Shipping Select"
1598
  msgstr "Versandarten Auswahl"
1599
 
1600
  # @ woocommerce-germanized
1601
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:928
1602
  msgid "Hide shipping rate selection from checkout?"
1603
  msgstr "Die Auswahl von Versandarten im Checkout deaktivieren?"
1604
 
1605
  # @ woocommerce-germanized
1606
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:932
1607
  msgid ""
1608
  "This option will hide shipping rate selection from checkout. By then "
1609
  "customers will only be able to change their shipping rate on cart page."
@@ -1613,18 +1667,18 @@ msgstr ""
1613
  "Versandmethode ändern."
1614
 
1615
  # @ woocommerce-germanized
1616
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:936
1617
  msgid "Show back to cart button"
1618
  msgstr "Bestellung bearbeiten"
1619
 
1620
  # @ woocommerce-germanized
1621
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:937
1622
  msgid "Show back to cart button within your checkout table?"
1623
  msgstr ""
1624
  "Einen \"Bestellung bearbeiten\" Button in der Bestellübersicht anzeigen?"
1625
 
1626
  # @ woocommerce-germanized
1627
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:941
1628
  msgid ""
1629
  "This button may let your customer edit their order before submitting. Some "
1630
  "people state that this button should be hidden to avoid legal problems."
@@ -1636,28 +1690,28 @@ msgstr ""
1636
  "keine weitere Informationen abgedruckt werden sollten."
1637
 
1638
  # @ woocommerce-germanized
1639
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:945
1640
  msgid "Show edit data notice"
1641
  msgstr "Bestellung prüfen Hinweis"
1642
 
1643
  # @ woocommerce-germanized
1644
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:946
1645
  msgid "Show a \"check-your-entries\" notice to the user?"
1646
  msgstr "Einen \"Bestellung prüfen\" Hinweis anzeigen?"
1647
 
1648
  # @ woocommerce-germanized
1649
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:950
1650
  msgid "This notice will be added right before the order comments field."
1651
  msgstr ""
1652
  "Dieser Hinweis wird direkt oberhalb des Bestellhinweise-Feldes eingefügt."
1653
 
1654
  # @ woocommerce-germanized
1655
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:954
1656
  msgid "Checkout Table Color"
1657
  msgstr "Hintergrundfarbe der Tabelle"
1658
 
1659
  # @ woocommerce-germanized
1660
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:956
1661
  msgid ""
1662
  "Choose the color of your checkout product table. This table should be "
1663
  "highlighted within your checkout page."
@@ -1666,17 +1720,17 @@ msgstr ""
1666
  "Tabelle sollte sich farblich vom Rest des Inhalts abheben."
1667
 
1668
  # @ woocommerce-germanized
1669
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:962
1670
  msgid "Checkout Legal Display"
1671
  msgstr "Checkbox oder Text"
1672
 
1673
  # @ woocommerce-germanized
1674
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:963
1675
  msgid "Use Text without Checkbox"
1676
  msgstr "Rechtshinweis ohne Checkbox."
1677
 
1678
  # @ woocommerce-germanized
1679
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:965
1680
  msgid ""
1681
  "This version will remove checkboxes from Checkout and display a text "
1682
  "instead. This seems to be legally compliant (Zalando & Co are using this "
@@ -1687,12 +1741,12 @@ msgstr ""
1687
  "diese Form)"
1688
 
1689
  # @ woocommerce-germanized
1690
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:971
1691
  msgid "Legal Text"
1692
  msgstr "Rechtlicher Hinweistext"
1693
 
1694
  # @ woocommerce-germanized
1695
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:972
1696
  msgid ""
1697
  "Choose a Plain Text which will be shown right above checkout submit button. "
1698
  "Use {term_link}{/term_link}, {data_security_link}{/data_security_link}, "
@@ -1705,7 +1759,7 @@ msgstr ""
1705
  "revocation_link} um die jeweiligen Links zu den Seiten einzufügen."
1706
 
1707
  # @ woocommerce-germanized
1708
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:974
1709
  msgid ""
1710
  "With your order, you agree to have read and understood our {term_link}Terms "
1711
  "and Conditions{/term_link} and your {revocation_link}Right of Recission{/"
@@ -1716,12 +1770,12 @@ msgstr ""
1716
  "revocation_link} einverstanden."
1717
 
1718
  # @ woocommerce-germanized
1719
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:981
1720
  msgid "Legal Text Error"
1721
  msgstr "Fehlermeldung der Checkbox"
1722
 
1723
  # @ woocommerce-germanized
1724
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:982
1725
  msgid ""
1726
  "If you have chosen to use checkbox validation please choose a error message "
1727
  "which will be shown if the user doesn't check checkbox. Use {term_link}{/"
@@ -1736,7 +1790,7 @@ msgstr ""
1736
  "revocation_link}"
1737
 
1738
  # @ woocommerce-germanized
1739
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:984
1740
  msgid ""
1741
  "To finish the order you have to accept to our {term_link}Terms and "
1742
  "Conditions{/term_link} and {revocation_link}Right of Recission{/"
@@ -1746,17 +1800,17 @@ msgstr ""
1746
  "term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
1747
 
1748
  # @ woocommerce-germanized
1749
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:991
1750
  msgid "Show digital notice"
1751
  msgstr "Checkbox digitale Produkte"
1752
 
1753
  # @ woocommerce-germanized
1754
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:992
1755
  msgid "Show checkbox for digital products."
1756
  msgstr "Checkbox bei digitalen Produkten anzeigen."
1757
 
1758
  # @ woocommerce-germanized
1759
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:993
1760
  msgid ""
1761
  "Disable this option if you want your customers to obtain their right of "
1762
  "recission even if digital products are being bought."
@@ -1766,12 +1820,12 @@ msgstr ""
1766
  "werden, dass im Falle von digitalen Produkten das Widerrufsrecht erlischt."
1767
 
1768
  # @ woocommerce-germanized
1769
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1000
1770
  msgid "Digital Product types"
1771
  msgstr "Digitale Produkttypen"
1772
 
1773
  # @ woocommerce-germanized
1774
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1001
1775
  msgid ""
1776
  "Select product types for which the loss of recission notice is shown. "
1777
  "Product types like \"simple product\" may be redudant because they include "
@@ -1783,12 +1837,12 @@ msgstr ""
1783
  "einschließen."
1784
 
1785
  # @ woocommerce-germanized
1786
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1011
1787
  msgid "Legal Digital Text"
1788
  msgstr "Hinweis Digital"
1789
 
1790
  # @ woocommerce-germanized
1791
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1012
1792
  msgid ""
1793
  "Choose a Plain Text which will be shown right above checkout submit button "
1794
  "if a user has picked a digital product. See legal text option for possible "
@@ -1799,7 +1853,7 @@ msgstr ""
1799
  "Platzhalter verwenden wie beim Rechtlichen Hinweistext"
1800
 
1801
  # @ woocommerce-germanized
1802
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1014
1803
  msgid ""
1804
  "For digital products: I strongly agree that the execution of the agreement "
1805
  "starts before the revocation period has expired. I am aware that my right of "
@@ -1810,13 +1864,13 @@ msgstr ""
1810
  "bekannt, dass mit Beginn der Ausführung mein Widerrufsrecht erlischt."
1811
 
1812
  # @ woocommerce-germanized
1813
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1021
1814
  msgid "Legal Digital Error"
1815
  msgstr "Fehlermeldung Digital"
1816
 
1817
  # @ woocommerce-germanized
1818
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1022
1819
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1061
1820
  msgid ""
1821
  "This text will be shown as error message if customer has not checked the "
1822
  "corresponding checkbox. See legal text option for possible placeholders."
@@ -1826,7 +1880,7 @@ msgstr ""
1826
  "Hinweistext für eine Liste der Platzhalter."
1827
 
1828
  # @ woocommerce-germanized
1829
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1024
1830
  #: includes/wc-gzd-cart-functions.php:317
1831
  msgid ""
1832
  "To retrieve direct access to digital content you have to agree to the loss "
@@ -1836,12 +1890,12 @@ msgstr ""
1836
  "Widerrufsrecht verzichten."
1837
 
1838
  # @ woocommerce-germanized
1839
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1031
1840
  msgid "Digital Confirmation Notice"
1841
  msgstr "Digitale Bestätigung"
1842
 
1843
  # @ woocommerce-germanized
1844
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1032
1845
  msgid ""
1846
  "This text will be appended to your order processing email if the order "
1847
  "contains digital products. Use placeholders {link}{/link} to insert link to "
@@ -1852,7 +1906,7 @@ msgstr ""
1852
  "Platzhalter {link}{/link} um einen Link zur Widerrufsbelehrung einzufügen."
1853
 
1854
  # @ woocommerce-germanized
1855
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1035
1856
  msgid ""
1857
  "Furthermore you have expressly agreed to start the performance of the "
1858
  "contract for digital items (e.g. downloads) before expiry of the withdrawal "
@@ -1866,17 +1920,17 @@ msgstr ""
1866
  "verlieren."
1867
 
1868
  # @ woocommerce-germanized
1869
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1041
1870
  msgid "Show service notice"
1871
  msgstr "Checkbox Dienstleistungen"
1872
 
1873
  # @ woocommerce-germanized
1874
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1042
1875
  msgid "Show checkbox for service products."
1876
  msgstr "Checkbox bei Dienstleistungen anzeigen."
1877
 
1878
  # @ woocommerce-germanized
1879
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1043
1880
  msgid ""
1881
  "Disable this option if you want your customers to obtain their right of "
1882
  "recission even if service products are being bought."
@@ -1887,12 +1941,12 @@ msgstr ""
1887
  "Widerrufsfrist mit der Dienstleistung begonnen wird."
1888
 
1889
  # @ woocommerce-germanized
1890
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1050
1891
  msgid "Legal Service Text"
1892
  msgstr "Hinweis Dienstleistungen"
1893
 
1894
  # @ woocommerce-germanized
1895
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1051
1896
  msgid ""
1897
  "Choose a Plain Text which will be shown right above checkout submit button "
1898
  "if a user has picked a service product. See legal text option for possible "
@@ -1903,7 +1957,7 @@ msgstr ""
1903
  "Platzhalter verwenden wie beim Rechtlichen Hinweistext."
1904
 
1905
  # @ woocommerce-germanized
1906
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1053
1907
  #: includes/wc-gzd-cart-functions.php:339
1908
  msgid ""
1909
  "For services: I demand and acknowledge the immediate performance of the "
@@ -1916,12 +1970,12 @@ msgstr ""
1916
  "vollständiger Erfüllung des Vertrages erlischt."
1917
 
1918
  # @ woocommerce-germanized
1919
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1060
1920
  msgid "Legal Service Error"
1921
  msgstr "Fehlermeldung"
1922
 
1923
  # @ woocommerce-germanized
1924
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1063
1925
  #: includes/wc-gzd-cart-functions.php:348
1926
  msgid ""
1927
  "To allow the immediate performance of the services you have to agree to the "
@@ -1930,12 +1984,12 @@ msgstr ""
1930
  "Bitte stimme dem Beginn der Dienstleistung vor Ablauf der Widerrufsfrist zu."
1931
 
1932
  # @ woocommerce-germanized
1933
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1070
1934
  msgid "Service Confirmation Notice"
1935
  msgstr "Dienstleistung Bestätigung"
1936
 
1937
  # @ woocommerce-germanized
1938
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1071
1939
  msgid ""
1940
  "This text will be appended to your order processing email if the order "
1941
  "contains service products. Use placeholders {link}{/link} to insert link to "
@@ -1946,7 +2000,7 @@ msgstr ""
1946
  "Platzhalter {link}{/link} um einen Link zur Widerrufsbelehrung einzufügen."
1947
 
1948
  # @ woocommerce-germanized
1949
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1074
1950
  msgid ""
1951
  "Furthermore you have expressly agreed to start the performance of the "
1952
  "contract for services before expiry of the withdrawal period. I have noted "
@@ -1960,18 +2014,18 @@ msgstr ""
1960
  "erlischt."
1961
 
1962
  # @ woocommerce-germanized
1963
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1080
1964
  msgid "Parcel Delivery Checkbox"
1965
  msgstr "Paketdienstleister Checkbox"
1966
 
1967
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1081
1968
  msgid ""
1969
  "Show checkbox for data transmission to third party parcel service providers."
1970
  msgstr ""
1971
  "Checkbox zur Erlaubnis der Datenweitergabe an den Paketdienstleister "
1972
  "einfügen."
1973
 
1974
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1082
1975
  msgid ""
1976
  "You may optionally choose to show a checkbox which lets the customer accept "
1977
  "data transmission to a third party parcel service provider to receive parcel "
@@ -1985,15 +2039,15 @@ msgstr ""
1985
  "weitergeleitet werden. "
1986
 
1987
  # @ woocommerce-germanized
1988
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1089
1989
  msgid "Checkbox required"
1990
  msgstr "Checkbox verpflichtend"
1991
 
1992
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1090
1993
  msgid "Make the parcel delivery checkbox a required field."
1994
  msgstr "Paketdienstleister Checkbox zum Pflichtfeld machen?"
1995
 
1996
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1091
1997
  msgid ""
1998
  "For some reason you may want to force your customers to Opt-In to the data "
1999
  "transmission to a third party parcel service provider."
@@ -2003,11 +2057,11 @@ msgstr ""
2003
  "diese Option aus."
2004
 
2005
  # @ woocommerce-germanized
2006
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1098
2007
  msgid "Parcel Delivery Text"
2008
  msgstr "Paketdienstleister Text"
2009
 
2010
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1099
2011
  msgid ""
2012
  "Choose a Plain Text which will be shown right next to the corresponding "
2013
  "checkbox to inform the customer about the data being transfered to the third "
@@ -2019,7 +2073,7 @@ msgstr ""
2019
  "den Paketdienstleister. Verwende den Platzhalter {shipping_method_title} um "
2020
  "den Titel der Versandmethoden einzubetten."
2021
 
2022
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1101
2023
  #: includes/wc-gzd-cart-functions.php:388
2024
  msgid ""
2025
  "Yes, I would like to be reminded via E-mail about parcel delivery "
@@ -2031,26 +2085,26 @@ msgstr ""
2031
  "wird nur für diesen einmaligen Zweck an unseren Paketdienstleister "
2032
  "weitergegeben."
2033
 
2034
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1109
2035
  msgid "Select shipping methods which are applicable for the Opt-In Checkbox."
2036
  msgstr ""
2037
  "Wähle Versandmethoden aus für die die Paketdienstleister Checkbox angezeigt "
2038
  "werden soll."
2039
 
2040
  # @ woocommerce-germanized
2041
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1119
2042
  msgid "Pay now Button"
2043
  msgstr "Jetzt bezahlen Button"
2044
 
2045
  # @ woocommerce-germanized
2046
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1120
2047
  msgid "Add a pay now button to emails and order success page."
2048
  msgstr ""
2049
  "Füge einen jetzt bezahlen - Button zur E-Mail und der Bestätigungs-Seite "
2050
  "hinzu."
2051
 
2052
  # @ woocommerce-germanized
2053
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1121
2054
  msgid ""
2055
  "Add a pay now button to order confirmation email and order success page if "
2056
  "the order awaits payment (PayPal etc)."
@@ -2060,30 +2114,30 @@ msgstr ""
2060
  "benötigt (z.B. per PayPal)."
2061
 
2062
  # @ woocommerce-germanized
2063
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1128
2064
  msgid "Order Success Text"
2065
  msgstr "Bestellung eingegangen"
2066
 
2067
  # @ woocommerce-germanized
2068
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1129
2069
  msgid "Choose a custom text to display on order success page."
2070
  msgstr ""
2071
  "Hier kannst du einen individuellen kurzen Text eingeben, der nach der "
2072
  "Bestellung ausgegeben wird."
2073
 
2074
  # @ woocommerce-germanized
2075
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1137
2076
  msgid "Order Success Data"
2077
  msgstr "Bestellbestätigungs-Daten"
2078
 
2079
  # @ woocommerce-germanized
2080
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1138
2081
  msgid "Hide product table and customer data on order success page"
2082
  msgstr ""
2083
  "Produktdetails (Tabelle, Kundeninfos) von der Bestätigungsseite entfernen."
2084
 
2085
  # @ woocommerce-germanized
2086
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1246
2087
  msgid ""
2088
  "Sorry, but the new Virtual VAT rules cannot be applied to small business."
2089
  msgstr ""
@@ -2668,8 +2722,8 @@ msgstr "jetzt upgraden"
2668
  #: includes/api/class-wc-gzd-rest-customers-controller.php:92
2669
  #: includes/api/class-wc-gzd-rest-orders-controller.php:87
2670
  #: includes/api/class-wc-gzd-rest-orders-controller.php:94
2671
- #: includes/class-wc-gzd-checkout.php:252
2672
- #: includes/class-wc-gzd-checkout.php:263
2673
  #: includes/class-wc-gzd-customer-helper.php:84
2674
  #: includes/class-wc-gzd-customer-helper.php:91
2675
  msgid "Title"
@@ -2918,9 +2972,10 @@ msgstr ""
2918
  "Mail mit deinen Daten als Bestätigung."
2919
 
2920
  # @ woocommerce-germanized
2921
- #: includes/class-wc-gzd-checkout.php:253
2922
- #: includes/class-wc-gzd-checkout.php:261
2923
- #: includes/class-wc-gzd-checkout.php:403
 
2924
  #: includes/class-wc-gzd-customer-helper.php:86
2925
  #: includes/class-wc-gzd-customer-helper.php:93
2926
  #: includes/class-wc-gzd-revocation.php:41
@@ -2928,9 +2983,10 @@ msgid "Mr."
2928
  msgstr "Herr"
2929
 
2930
  # @ woocommerce-germanized
2931
- #: includes/class-wc-gzd-checkout.php:253
2932
- #: includes/class-wc-gzd-checkout.php:261
2933
- #: includes/class-wc-gzd-checkout.php:403
 
2934
  #: includes/class-wc-gzd-customer-helper.php:86
2935
  #: includes/class-wc-gzd-customer-helper.php:93
2936
  #: includes/class-wc-gzd-revocation.php:42
@@ -2966,6 +3022,59 @@ msgstr "Vielen Dank. Dein Benutzerkonto wurde erfolgreich aktiviert."
2966
  msgid "Sorry, but this activation code cannot be found."
2967
  msgstr "Sorry, dieser Aktivierungscode ist uns leider nicht bekannt."
2968
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2969
  # @ woocommerce-germanized
2970
  #: includes/class-wc-gzd-ekomi.php:55
2971
  msgid "eKomi Customer"
@@ -3069,7 +3178,7 @@ msgid "eKomi Options"
3069
  msgstr "eKomi"
3070
 
3071
  # @ woocommerce-germanized
3072
- #: includes/class-wc-gzd-emails.php:387
3073
  msgctxt "revocation-form"
3074
  msgid "Forward your Revocation online"
3075
  msgstr "Deinen Widerruf online erklären"
@@ -3334,8 +3443,8 @@ msgstr "Neuen Preishinweis anlegen"
3334
  msgid "New Price Label Name"
3335
  msgstr "Name des neuen Preishinweises"
3336
 
3337
- #: includes/class-wc-gzd-product-variable.php:117
3338
- #: includes/class-wc-gzd-product-variable.php:122
3339
  #, php-format
3340
  msgctxt "Price range: from-to"
3341
  msgid "%1$s&ndash;%2$s"
@@ -3981,7 +4090,7 @@ msgstr ""
3981
  # @ woocommerce-germanized
3982
  # @ woocommerce
3983
  #: includes/gateways/invoice/class-wc-gzd-gateway-invoice.php:50
3984
- #: woocommerce-germanized.php:546
3985
  msgid "Settings"
3986
  msgstr "Einstellungen"
3987
 
@@ -4916,6 +5025,18 @@ msgctxt "trusted-shops"
4916
  msgid "%s custom reviews"
4917
  msgstr "%s Kundenbewertungen"
4918
 
 
 
 
 
 
 
 
 
 
 
 
 
4919
  # @ woocommerce-germanized
4920
  #~ msgid "Not found within your imprint"
4921
  #~ msgstr "Nicht in deinem Impressum gefunden"
2
  msgstr ""
3
  "Project-Id-Version: WooCommerce Germanized v1.5.1\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2017-03-17 16:31+0100\n"
6
+ "PO-Revision-Date: 2017-03-17 18:37+0100\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "Language: de_DE\n"
91
  # @ woocommerce-germanized
92
  #: includes/abstracts/abstract-wc-gzd-product.php:215
93
  #: includes/compatibility/class-wc-gzd-compatibility-woocommerce-subscriptions.php:72
94
+ #: includes/wc-gzd-cart-functions.php:269 woocommerce-germanized.php:740
95
  msgid "incl. VAT"
96
  msgstr "inkl. MwSt."
97
 
103
  # @ woocommerce-germanized
104
  #: includes/abstracts/abstract-wc-gzd-product.php:217
105
  #: includes/compatibility/class-wc-gzd-compatibility-woocommerce-subscriptions.php:72
106
+ #: includes/wc-gzd-cart-functions.php:269 woocommerce-germanized.php:740
107
  #, php-format
108
  msgid "incl. %s%% VAT"
109
  msgstr "inkl. %s%% MwSt."
178
  # @ woocommerce-germanized
179
  #: includes/admin/class-wc-gzd-admin-status.php:43
180
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:280
181
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1134
182
  msgid "Shipping Methods"
183
  msgstr "Versandarten"
184
 
1503
  msgid "Checkout & Cart"
1504
  msgstr "Checkout & Warenkorb"
1505
 
 
1506
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:891
1507
+ msgid "DHL Parcel Shops"
1508
+ msgstr "DHL Packstationen"
1509
+
1510
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:892
1511
+ msgid ""
1512
+ "Allow customers to choose a DHL parcel shop or packing station as delivery "
1513
+ "address."
1514
+ msgstr "Versand an DHL Packstation bzw. Paketshops aktivieren."
1515
+
1516
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:896
1517
+ msgid ""
1518
+ "This option adds a checkbox to your checkout shipping fields which allows "
1519
+ "the customer to optionally choose a DHL packing station or parcel shop for "
1520
+ "delivery. A PostNumber is required."
1521
+ msgstr ""
1522
+ "Diese Option fügt eine Checkbox in der Kasse (Versandadresse) ein. Hier kann "
1523
+ "der Kunde optional die Lieferung an eine Packstation aktivieren. Fall das "
1524
+ "der Fall ist, muss eine PostNummer angegeben werden."
1525
+
1526
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:900
1527
+ msgid "Supported Countries"
1528
+ msgstr "Unterstützte Länder"
1529
+
1530
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:904
1531
+ msgid "Choose countries which support Parcel Shop delivery."
1532
+ msgstr ""
1533
+ "Wähle hier die Länder an, in denen du die Lieferung an DHL Packstationen "
1534
+ "bzw. Paketshops aktivieren möchtest."
1535
+
1536
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:908
1537
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:237
1538
+ msgid "Parcel Shop Finder"
1539
+ msgstr "Paketshop finden"
1540
+
1541
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:909
1542
+ msgid ""
1543
+ "Enable DHL Parcel Shop Finder to let customers choose a parcel shop nearby."
1544
+ msgstr "Standortsuche nach der nächstgelegenen Packstation aktivieren."
1545
+
1546
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:913
1547
+ #, php-format
1548
+ msgid ""
1549
+ "You may enable this option to add a <a href=\"%s\" target=\"_blank\">Parcel "
1550
+ "Shop Finder</a> to your checkout. Adds an link next to the checkbox. The "
1551
+ "finder (DHL API) opens in an overlay and lets the customer find and choose a "
1552
+ "parcel shop or packing station nearby."
1553
+ msgstr ""
1554
+ "Aktiviere diese Option um die <a href=\"%s\" target=\"_blank"
1555
+ "\">Standortsuche</a> zu aktivieren. Diese Option fügt einen Link neben der "
1556
+ "Checkbox ein bei dessen Klick, die Suche (DHL API) in einer Lightbox "
1557
+ "geöffnet wird. Der Kunde kann eine Packstation bzw. einen Paketshop seiner "
1558
+ "Nähe auswählen und die Daten automatisch übernehmen."
1559
+
1560
+ # @ woocommerce-germanized
1561
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:917
1562
  #: includes/admin/views/html-page-status-germanized.php:55
1563
  msgid "Fallback Mode"
1564
  msgstr "Fallback Modus"
1565
 
1566
  # @ woocommerce-germanized
1567
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:918
1568
  msgid ""
1569
  "Enable to make sure default checkout template is not being overriden by "
1570
  "theme."
1572
  "Überschreiben relevanter Templates im Checkout durch dein Theme verhindern."
1573
 
1574
  # @ woocommerce-germanized
1575
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:922
1576
  msgid ""
1577
  "If you are facing problems within your checkout e.g. legally relevant data "
1578
  "is not showing (terms, delivery time, unit price etc.) your theme seems to "
1586
  "Checkout (review-order.php und form-checkout.php) zu überschreiben. "
1587
 
1588
  # @ woocommerce-germanized
1589
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:926
1590
  msgid "Force free shipping"
1591
  msgstr "Versandmethode erzwingen"
1592
 
1593
  # @ woocommerce-germanized
1594
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:927
1595
  msgid "Force free shipping method if available?"
1596
  msgstr "Kostenlosen Versand erzwingen wenn die Methode zur Verfügung steht?"
1597
 
1598
  # @ woocommerce-germanized
1599
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:931
1600
  msgid ""
1601
  "By default WooCommerce will let customers choose other shipping methods than "
1602
  "free shipping (if available). This option will force free shipping if "
1607
  "Versand, sobald dieser verfügbar ist."
1608
 
1609
  # @ woocommerce-germanized
1610
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:935
1611
  msgid "Hide taxes estimated"
1612
  msgstr "Hinweis \"Steuern geschätzt\""
1613
 
1614
  # @ woocommerce-germanized
1615
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:936
1616
  msgid ""
1617
  "Do you want to hide the \"taxes and shipping estimated\" text from your cart?"
1618
  msgstr "Den Hinweis \"Versandkosten und Steuern werden geschätzt\" entfernen?"
1619
 
1620
  # @ woocommerce-germanized
1621
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:940
1622
  msgid ""
1623
  "By default WooCommerce adds a \"taxes and shipping estimated\" text to your "
1624
  "cart. This might puzzle your customers and may not meet german law."
1628
  "Markt geeignet."
1629
 
1630
  # @ woocommerce-germanized
1631
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:944
1632
  msgid "Show Thumbnails"
1633
  msgstr "Thumbnails anzeigen"
1634
 
1635
  # @ woocommerce-germanized
1636
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:945
1637
  msgid "Show product thumbnails on checkout page?"
1638
  msgstr "Produktbilder im Checkout darstellen?"
1639
 
1640
  # @ woocommerce-germanized
1641
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:949
1642
  msgid ""
1643
  "Uncheck if you don't want to show your product thumbnails within checkout "
1644
  "table."
1647
  "bekommen möchtest."
1648
 
1649
  # @ woocommerce-germanized
1650
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:953
1651
  msgid "Hide Shipping Select"
1652
  msgstr "Versandarten Auswahl"
1653
 
1654
  # @ woocommerce-germanized
1655
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:954
1656
  msgid "Hide shipping rate selection from checkout?"
1657
  msgstr "Die Auswahl von Versandarten im Checkout deaktivieren?"
1658
 
1659
  # @ woocommerce-germanized
1660
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:958
1661
  msgid ""
1662
  "This option will hide shipping rate selection from checkout. By then "
1663
  "customers will only be able to change their shipping rate on cart page."
1667
  "Versandmethode ändern."
1668
 
1669
  # @ woocommerce-germanized
1670
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:962
1671
  msgid "Show back to cart button"
1672
  msgstr "Bestellung bearbeiten"
1673
 
1674
  # @ woocommerce-germanized
1675
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:963
1676
  msgid "Show back to cart button within your checkout table?"
1677
  msgstr ""
1678
  "Einen \"Bestellung bearbeiten\" Button in der Bestellübersicht anzeigen?"
1679
 
1680
  # @ woocommerce-germanized
1681
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:967
1682
  msgid ""
1683
  "This button may let your customer edit their order before submitting. Some "
1684
  "people state that this button should be hidden to avoid legal problems."
1690
  "keine weitere Informationen abgedruckt werden sollten."
1691
 
1692
  # @ woocommerce-germanized
1693
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:971
1694
  msgid "Show edit data notice"
1695
  msgstr "Bestellung prüfen Hinweis"
1696
 
1697
  # @ woocommerce-germanized
1698
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:972
1699
  msgid "Show a \"check-your-entries\" notice to the user?"
1700
  msgstr "Einen \"Bestellung prüfen\" Hinweis anzeigen?"
1701
 
1702
  # @ woocommerce-germanized
1703
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:976
1704
  msgid "This notice will be added right before the order comments field."
1705
  msgstr ""
1706
  "Dieser Hinweis wird direkt oberhalb des Bestellhinweise-Feldes eingefügt."
1707
 
1708
  # @ woocommerce-germanized
1709
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:980
1710
  msgid "Checkout Table Color"
1711
  msgstr "Hintergrundfarbe der Tabelle"
1712
 
1713
  # @ woocommerce-germanized
1714
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:982
1715
  msgid ""
1716
  "Choose the color of your checkout product table. This table should be "
1717
  "highlighted within your checkout page."
1720
  "Tabelle sollte sich farblich vom Rest des Inhalts abheben."
1721
 
1722
  # @ woocommerce-germanized
1723
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:988
1724
  msgid "Checkout Legal Display"
1725
  msgstr "Checkbox oder Text"
1726
 
1727
  # @ woocommerce-germanized
1728
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:989
1729
  msgid "Use Text without Checkbox"
1730
  msgstr "Rechtshinweis ohne Checkbox."
1731
 
1732
  # @ woocommerce-germanized
1733
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:991
1734
  msgid ""
1735
  "This version will remove checkboxes from Checkout and display a text "
1736
  "instead. This seems to be legally compliant (Zalando & Co are using this "
1741
  "diese Form)"
1742
 
1743
  # @ woocommerce-germanized
1744
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:997
1745
  msgid "Legal Text"
1746
  msgstr "Rechtlicher Hinweistext"
1747
 
1748
  # @ woocommerce-germanized
1749
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:998
1750
  msgid ""
1751
  "Choose a Plain Text which will be shown right above checkout submit button. "
1752
  "Use {term_link}{/term_link}, {data_security_link}{/data_security_link}, "
1759
  "revocation_link} um die jeweiligen Links zu den Seiten einzufügen."
1760
 
1761
  # @ woocommerce-germanized
1762
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1000
1763
  msgid ""
1764
  "With your order, you agree to have read and understood our {term_link}Terms "
1765
  "and Conditions{/term_link} and your {revocation_link}Right of Recission{/"
1770
  "revocation_link} einverstanden."
1771
 
1772
  # @ woocommerce-germanized
1773
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1007
1774
  msgid "Legal Text Error"
1775
  msgstr "Fehlermeldung der Checkbox"
1776
 
1777
  # @ woocommerce-germanized
1778
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1008
1779
  msgid ""
1780
  "If you have chosen to use checkbox validation please choose a error message "
1781
  "which will be shown if the user doesn't check checkbox. Use {term_link}{/"
1790
  "revocation_link}"
1791
 
1792
  # @ woocommerce-germanized
1793
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1010
1794
  msgid ""
1795
  "To finish the order you have to accept to our {term_link}Terms and "
1796
  "Conditions{/term_link} and {revocation_link}Right of Recission{/"
1800
  "term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
1801
 
1802
  # @ woocommerce-germanized
1803
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1017
1804
  msgid "Show digital notice"
1805
  msgstr "Checkbox digitale Produkte"
1806
 
1807
  # @ woocommerce-germanized
1808
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1018
1809
  msgid "Show checkbox for digital products."
1810
  msgstr "Checkbox bei digitalen Produkten anzeigen."
1811
 
1812
  # @ woocommerce-germanized
1813
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1019
1814
  msgid ""
1815
  "Disable this option if you want your customers to obtain their right of "
1816
  "recission even if digital products are being bought."
1820
  "werden, dass im Falle von digitalen Produkten das Widerrufsrecht erlischt."
1821
 
1822
  # @ woocommerce-germanized
1823
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1026
1824
  msgid "Digital Product types"
1825
  msgstr "Digitale Produkttypen"
1826
 
1827
  # @ woocommerce-germanized
1828
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1027
1829
  msgid ""
1830
  "Select product types for which the loss of recission notice is shown. "
1831
  "Product types like \"simple product\" may be redudant because they include "
1837
  "einschließen."
1838
 
1839
  # @ woocommerce-germanized
1840
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1037
1841
  msgid "Legal Digital Text"
1842
  msgstr "Hinweis Digital"
1843
 
1844
  # @ woocommerce-germanized
1845
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1038
1846
  msgid ""
1847
  "Choose a Plain Text which will be shown right above checkout submit button "
1848
  "if a user has picked a digital product. See legal text option for possible "
1853
  "Platzhalter verwenden wie beim Rechtlichen Hinweistext"
1854
 
1855
  # @ woocommerce-germanized
1856
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1040
1857
  msgid ""
1858
  "For digital products: I strongly agree that the execution of the agreement "
1859
  "starts before the revocation period has expired. I am aware that my right of "
1864
  "bekannt, dass mit Beginn der Ausführung mein Widerrufsrecht erlischt."
1865
 
1866
  # @ woocommerce-germanized
1867
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1047
1868
  msgid "Legal Digital Error"
1869
  msgstr "Fehlermeldung Digital"
1870
 
1871
  # @ woocommerce-germanized
1872
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1048
1873
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1087
1874
  msgid ""
1875
  "This text will be shown as error message if customer has not checked the "
1876
  "corresponding checkbox. See legal text option for possible placeholders."
1880
  "Hinweistext für eine Liste der Platzhalter."
1881
 
1882
  # @ woocommerce-germanized
1883
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1050
1884
  #: includes/wc-gzd-cart-functions.php:317
1885
  msgid ""
1886
  "To retrieve direct access to digital content you have to agree to the loss "
1890
  "Widerrufsrecht verzichten."
1891
 
1892
  # @ woocommerce-germanized
1893
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1057
1894
  msgid "Digital Confirmation Notice"
1895
  msgstr "Digitale Bestätigung"
1896
 
1897
  # @ woocommerce-germanized
1898
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1058
1899
  msgid ""
1900
  "This text will be appended to your order processing email if the order "
1901
  "contains digital products. Use placeholders {link}{/link} to insert link to "
1906
  "Platzhalter {link}{/link} um einen Link zur Widerrufsbelehrung einzufügen."
1907
 
1908
  # @ woocommerce-germanized
1909
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1061
1910
  msgid ""
1911
  "Furthermore you have expressly agreed to start the performance of the "
1912
  "contract for digital items (e.g. downloads) before expiry of the withdrawal "
1920
  "verlieren."
1921
 
1922
  # @ woocommerce-germanized
1923
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1067
1924
  msgid "Show service notice"
1925
  msgstr "Checkbox Dienstleistungen"
1926
 
1927
  # @ woocommerce-germanized
1928
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1068
1929
  msgid "Show checkbox for service products."
1930
  msgstr "Checkbox bei Dienstleistungen anzeigen."
1931
 
1932
  # @ woocommerce-germanized
1933
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1069
1934
  msgid ""
1935
  "Disable this option if you want your customers to obtain their right of "
1936
  "recission even if service products are being bought."
1941
  "Widerrufsfrist mit der Dienstleistung begonnen wird."
1942
 
1943
  # @ woocommerce-germanized
1944
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1076
1945
  msgid "Legal Service Text"
1946
  msgstr "Hinweis Dienstleistungen"
1947
 
1948
  # @ woocommerce-germanized
1949
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1077
1950
  msgid ""
1951
  "Choose a Plain Text which will be shown right above checkout submit button "
1952
  "if a user has picked a service product. See legal text option for possible "
1957
  "Platzhalter verwenden wie beim Rechtlichen Hinweistext."
1958
 
1959
  # @ woocommerce-germanized
1960
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1079
1961
  #: includes/wc-gzd-cart-functions.php:339
1962
  msgid ""
1963
  "For services: I demand and acknowledge the immediate performance of the "
1970
  "vollständiger Erfüllung des Vertrages erlischt."
1971
 
1972
  # @ woocommerce-germanized
1973
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1086
1974
  msgid "Legal Service Error"
1975
  msgstr "Fehlermeldung"
1976
 
1977
  # @ woocommerce-germanized
1978
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1089
1979
  #: includes/wc-gzd-cart-functions.php:348
1980
  msgid ""
1981
  "To allow the immediate performance of the services you have to agree to the "
1984
  "Bitte stimme dem Beginn der Dienstleistung vor Ablauf der Widerrufsfrist zu."
1985
 
1986
  # @ woocommerce-germanized
1987
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1096
1988
  msgid "Service Confirmation Notice"
1989
  msgstr "Dienstleistung Bestätigung"
1990
 
1991
  # @ woocommerce-germanized
1992
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1097
1993
  msgid ""
1994
  "This text will be appended to your order processing email if the order "
1995
  "contains service products. Use placeholders {link}{/link} to insert link to "
2000
  "Platzhalter {link}{/link} um einen Link zur Widerrufsbelehrung einzufügen."
2001
 
2002
  # @ woocommerce-germanized
2003
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1100
2004
  msgid ""
2005
  "Furthermore you have expressly agreed to start the performance of the "
2006
  "contract for services before expiry of the withdrawal period. I have noted "
2014
  "erlischt."
2015
 
2016
  # @ woocommerce-germanized
2017
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1106
2018
  msgid "Parcel Delivery Checkbox"
2019
  msgstr "Paketdienstleister Checkbox"
2020
 
2021
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1107
2022
  msgid ""
2023
  "Show checkbox for data transmission to third party parcel service providers."
2024
  msgstr ""
2025
  "Checkbox zur Erlaubnis der Datenweitergabe an den Paketdienstleister "
2026
  "einfügen."
2027
 
2028
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1108
2029
  msgid ""
2030
  "You may optionally choose to show a checkbox which lets the customer accept "
2031
  "data transmission to a third party parcel service provider to receive parcel "
2039
  "weitergeleitet werden. "
2040
 
2041
  # @ woocommerce-germanized
2042
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1115
2043
  msgid "Checkbox required"
2044
  msgstr "Checkbox verpflichtend"
2045
 
2046
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1116
2047
  msgid "Make the parcel delivery checkbox a required field."
2048
  msgstr "Paketdienstleister Checkbox zum Pflichtfeld machen?"
2049
 
2050
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1117
2051
  msgid ""
2052
  "For some reason you may want to force your customers to Opt-In to the data "
2053
  "transmission to a third party parcel service provider."
2057
  "diese Option aus."
2058
 
2059
  # @ woocommerce-germanized
2060
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1124
2061
  msgid "Parcel Delivery Text"
2062
  msgstr "Paketdienstleister Text"
2063
 
2064
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1125
2065
  msgid ""
2066
  "Choose a Plain Text which will be shown right next to the corresponding "
2067
  "checkbox to inform the customer about the data being transfered to the third "
2073
  "den Paketdienstleister. Verwende den Platzhalter {shipping_method_title} um "
2074
  "den Titel der Versandmethoden einzubetten."
2075
 
2076
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1127
2077
  #: includes/wc-gzd-cart-functions.php:388
2078
  msgid ""
2079
  "Yes, I would like to be reminded via E-mail about parcel delivery "
2085
  "wird nur für diesen einmaligen Zweck an unseren Paketdienstleister "
2086
  "weitergegeben."
2087
 
2088
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1135
2089
  msgid "Select shipping methods which are applicable for the Opt-In Checkbox."
2090
  msgstr ""
2091
  "Wähle Versandmethoden aus für die die Paketdienstleister Checkbox angezeigt "
2092
  "werden soll."
2093
 
2094
  # @ woocommerce-germanized
2095
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1145
2096
  msgid "Pay now Button"
2097
  msgstr "Jetzt bezahlen Button"
2098
 
2099
  # @ woocommerce-germanized
2100
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1146
2101
  msgid "Add a pay now button to emails and order success page."
2102
  msgstr ""
2103
  "Füge einen jetzt bezahlen - Button zur E-Mail und der Bestätigungs-Seite "
2104
  "hinzu."
2105
 
2106
  # @ woocommerce-germanized
2107
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1147
2108
  msgid ""
2109
  "Add a pay now button to order confirmation email and order success page if "
2110
  "the order awaits payment (PayPal etc)."
2114
  "benötigt (z.B. per PayPal)."
2115
 
2116
  # @ woocommerce-germanized
2117
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1154
2118
  msgid "Order Success Text"
2119
  msgstr "Bestellung eingegangen"
2120
 
2121
  # @ woocommerce-germanized
2122
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1155
2123
  msgid "Choose a custom text to display on order success page."
2124
  msgstr ""
2125
  "Hier kannst du einen individuellen kurzen Text eingeben, der nach der "
2126
  "Bestellung ausgegeben wird."
2127
 
2128
  # @ woocommerce-germanized
2129
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1163
2130
  msgid "Order Success Data"
2131
  msgstr "Bestellbestätigungs-Daten"
2132
 
2133
  # @ woocommerce-germanized
2134
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1164
2135
  msgid "Hide product table and customer data on order success page"
2136
  msgstr ""
2137
  "Produktdetails (Tabelle, Kundeninfos) von der Bestätigungsseite entfernen."
2138
 
2139
  # @ woocommerce-germanized
2140
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1272
2141
  msgid ""
2142
  "Sorry, but the new Virtual VAT rules cannot be applied to small business."
2143
  msgstr ""
2722
  #: includes/api/class-wc-gzd-rest-customers-controller.php:92
2723
  #: includes/api/class-wc-gzd-rest-orders-controller.php:87
2724
  #: includes/api/class-wc-gzd-rest-orders-controller.php:94
2725
+ #: includes/class-wc-gzd-checkout.php:256
2726
+ #: includes/class-wc-gzd-checkout.php:266
2727
  #: includes/class-wc-gzd-customer-helper.php:84
2728
  #: includes/class-wc-gzd-customer-helper.php:91
2729
  msgid "Title"
2972
  "Mail mit deinen Daten als Bestätigung."
2973
 
2974
  # @ woocommerce-germanized
2975
+ #: includes/class-wc-gzd-checkout.php:257
2976
+ #: includes/class-wc-gzd-checkout.php:265
2977
+ #: includes/class-wc-gzd-checkout.php:290
2978
+ #: includes/class-wc-gzd-checkout.php:424
2979
  #: includes/class-wc-gzd-customer-helper.php:86
2980
  #: includes/class-wc-gzd-customer-helper.php:93
2981
  #: includes/class-wc-gzd-revocation.php:41
2983
  msgstr "Herr"
2984
 
2985
  # @ woocommerce-germanized
2986
+ #: includes/class-wc-gzd-checkout.php:257
2987
+ #: includes/class-wc-gzd-checkout.php:265
2988
+ #: includes/class-wc-gzd-checkout.php:291
2989
+ #: includes/class-wc-gzd-checkout.php:424
2990
  #: includes/class-wc-gzd-customer-helper.php:86
2991
  #: includes/class-wc-gzd-customer-helper.php:93
2992
  #: includes/class-wc-gzd-revocation.php:42
3022
  msgid "Sorry, but this activation code cannot be found."
3023
  msgstr "Sorry, dieser Aktivierungscode ist uns leider nicht bekannt."
3024
 
3025
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:99
3026
+ msgid "Send to DHL Parcel Shop?"
3027
+ msgstr "An DHL Paketshop oder Packstation senden?"
3028
+
3029
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:108
3030
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:127
3031
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:141
3032
+ msgid "Postnumber"
3033
+ msgstr "PostNummer"
3034
+
3035
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:120
3036
+ msgid "DHL Parcel Shop?"
3037
+ msgstr "DHL Paketshop/Packstation?"
3038
+
3039
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:122
3040
+ msgid "No"
3041
+ msgstr "Nein"
3042
+
3043
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:122
3044
+ msgid "Yes"
3045
+ msgstr "Ja"
3046
+
3047
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:123
3048
+ msgid "Select whether delivery to parcel shop should be enabled."
3049
+ msgstr ""
3050
+ "Wähle aus ob die Lieferung an DHL Paketshops bzw. Packstationen aktiviert "
3051
+ "werden soll."
3052
+
3053
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:129
3054
+ msgid ""
3055
+ "In case delivery to parcel shop is enabled please fill in the corresponding "
3056
+ "DHL post number."
3057
+ msgstr ""
3058
+ "Wenn die Lieferung an eine DHL Packstation aktiviert wurde, trage bitte die "
3059
+ "PostNummer ein."
3060
+
3061
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:162
3062
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:213
3063
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:214
3064
+ msgid "Parcel Shop"
3065
+ msgstr "Shop/Packstation"
3066
+
3067
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:181
3068
+ msgid "Your PostNumber should contain numbers only"
3069
+ msgstr "Deine PostNummer sollte nur aus Zahlen bestehen."
3070
+
3071
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:187
3072
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:220
3073
+ #, php-format
3074
+ msgid "Parcel Shop Delivery is only supported in: %s."
3075
+ msgstr ""
3076
+ "Die Lieferung in Paketshops bzw. Packstationen ist nur in %s verfügbar."
3077
+
3078
  # @ woocommerce-germanized
3079
  #: includes/class-wc-gzd-ekomi.php:55
3080
  msgid "eKomi Customer"
3178
  msgstr "eKomi"
3179
 
3180
  # @ woocommerce-germanized
3181
+ #: includes/class-wc-gzd-emails.php:407
3182
  msgctxt "revocation-form"
3183
  msgid "Forward your Revocation online"
3184
  msgstr "Deinen Widerruf online erklären"
3443
  msgid "New Price Label Name"
3444
  msgstr "Name des neuen Preishinweises"
3445
 
3446
+ #: includes/class-wc-gzd-product-variable.php:127
3447
+ #: includes/class-wc-gzd-product-variable.php:132
3448
  #, php-format
3449
  msgctxt "Price range: from-to"
3450
  msgid "%1$s&ndash;%2$s"
4090
  # @ woocommerce-germanized
4091
  # @ woocommerce
4092
  #: includes/gateways/invoice/class-wc-gzd-gateway-invoice.php:50
4093
+ #: woocommerce-germanized.php:548
4094
  msgid "Settings"
4095
  msgstr "Einstellungen"
4096
 
5025
  msgid "%s custom reviews"
5026
  msgstr "%s Kundenbewertungen"
5027
 
5028
+ #~ msgid ""
5029
+ #~ "You may enable this option to add a <a href=\"%s\">Parcel Shop Finder</a> "
5030
+ #~ "to your checkout. Adds an link next to the checkbox. The finder (DHL API) "
5031
+ #~ "opens in an overlay and lets the customer find and choose a parcel shop "
5032
+ #~ "or packing station nearby."
5033
+ #~ msgstr ""
5034
+ #~ "Aktiviere diese Option um die <a href=\"%s\">Standortsuche</a> zu "
5035
+ #~ "aktivieren. Diese Option fügt einen Link neben der Checkbox ein bei "
5036
+ #~ "dessen Klick, die Suche (DHL API) in einer Lightbox geöffnet wird. Der "
5037
+ #~ "Kunde kann eine Packstation bzw. einen Paketshop seiner Nähe auswählen "
5038
+ #~ "und die Daten automatisch übernehmen."
5039
+
5040
  # @ woocommerce-germanized
5041
  #~ msgid "Not found within your imprint"
5042
  #~ msgstr "Nicht in deinem Impressum gefunden"
i18n/languages/woocommerce-germanized-de_DE_formal.mo CHANGED
Binary file
i18n/languages/woocommerce-germanized-de_DE_formal.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: WooCommerce Germanized v1.5.1\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2017-03-08 11:02+0100\n"
6
- "PO-Revision-Date: 2017-03-08 11:03+0100\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "Language: de_DE\n"
@@ -91,7 +91,7 @@ msgstr "l"
91
  # @ woocommerce-germanized
92
  #: includes/abstracts/abstract-wc-gzd-product.php:215
93
  #: includes/compatibility/class-wc-gzd-compatibility-woocommerce-subscriptions.php:72
94
- #: includes/wc-gzd-cart-functions.php:269 woocommerce-germanized.php:727
95
  msgid "incl. VAT"
96
  msgstr "inkl. MwSt."
97
 
@@ -103,7 +103,7 @@ msgstr "exkl. MwSt."
103
  # @ woocommerce-germanized
104
  #: includes/abstracts/abstract-wc-gzd-product.php:217
105
  #: includes/compatibility/class-wc-gzd-compatibility-woocommerce-subscriptions.php:72
106
- #: includes/wc-gzd-cart-functions.php:269 woocommerce-germanized.php:727
107
  #, php-format
108
  msgid "incl. %s%% VAT"
109
  msgstr "inkl. %s%% MwSt."
@@ -178,7 +178,7 @@ msgstr "Zahlungarten"
178
  # @ woocommerce-germanized
179
  #: includes/admin/class-wc-gzd-admin-status.php:43
180
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:280
181
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1108
182
  msgid "Shipping Methods"
183
  msgstr "Versandarten"
184
 
@@ -194,7 +194,7 @@ msgid "Welcome to WooCommerce Germanized"
194
  msgstr "Willkommen bei WooCommerce Germanized"
195
 
196
  # @ woocommerce-germanized
197
- #: includes/admin/class-wc-gzd-admin-welcome.php:303
198
  msgid "Go to WooCommerce Germanized Settings"
199
  msgstr "zu den WooCommerce Germanized Einstellungen"
200
 
@@ -1503,14 +1503,68 @@ msgstr "Produkt enthält: {product_units} {unit}"
1503
  msgid "Checkout & Cart"
1504
  msgstr "Checkout & Warenkorb"
1505
 
1506
- # @ woocommerce-germanized
1507
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:891
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1508
  #: includes/admin/views/html-page-status-germanized.php:55
1509
  msgid "Fallback Mode"
1510
  msgstr "Fallback Modus"
1511
 
1512
  # @ woocommerce-germanized
1513
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:892
1514
  msgid ""
1515
  "Enable to make sure default checkout template is not being overriden by "
1516
  "theme."
@@ -1518,7 +1572,7 @@ msgstr ""
1518
  "Überschreiben relevanter Templates im Checkout durch dein Theme verhindern."
1519
 
1520
  # @ woocommerce-germanized
1521
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:896
1522
  msgid ""
1523
  "If you are facing problems within your checkout e.g. legally relevant data "
1524
  "is not showing (terms, delivery time, unit price etc.) your theme seems to "
@@ -1532,17 +1586,17 @@ msgstr ""
1532
  "Checkout (review-order.php und form-checkout.php) zu überschreiben. "
1533
 
1534
  # @ woocommerce-germanized
1535
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:900
1536
  msgid "Force free shipping"
1537
  msgstr "Versandmethode erzwingen"
1538
 
1539
  # @ woocommerce-germanized
1540
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:901
1541
  msgid "Force free shipping method if available?"
1542
  msgstr "Kostenlosen Versand erzwingen wenn die Methode zur Verfügung steht?"
1543
 
1544
  # @ woocommerce-germanized
1545
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:905
1546
  msgid ""
1547
  "By default WooCommerce will let customers choose other shipping methods than "
1548
  "free shipping (if available). This option will force free shipping if "
@@ -1553,18 +1607,18 @@ msgstr ""
1553
  "Versand, sobald dieser verfügbar ist."
1554
 
1555
  # @ woocommerce-germanized
1556
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:909
1557
  msgid "Hide taxes estimated"
1558
  msgstr "Hinweis \"Steuern geschätzt\""
1559
 
1560
  # @ woocommerce-germanized
1561
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:910
1562
  msgid ""
1563
  "Do you want to hide the \"taxes and shipping estimated\" text from your cart?"
1564
  msgstr "Den Hinweis \"Versandkosten und Steuern werden geschätzt\" entfernen?"
1565
 
1566
  # @ woocommerce-germanized
1567
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:914
1568
  msgid ""
1569
  "By default WooCommerce adds a \"taxes and shipping estimated\" text to your "
1570
  "cart. This might puzzle your customers and may not meet german law."
@@ -1574,17 +1628,17 @@ msgstr ""
1574
  "Markt geeignet."
1575
 
1576
  # @ woocommerce-germanized
1577
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:918
1578
  msgid "Show Thumbnails"
1579
  msgstr "Thumbnails anzeigen"
1580
 
1581
  # @ woocommerce-germanized
1582
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:919
1583
  msgid "Show product thumbnails on checkout page?"
1584
  msgstr "Produktbilder im Checkout darstellen?"
1585
 
1586
  # @ woocommerce-germanized
1587
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:923
1588
  msgid ""
1589
  "Uncheck if you don't want to show your product thumbnails within checkout "
1590
  "table."
@@ -1593,17 +1647,17 @@ msgstr ""
1593
  "bekommen möchtest."
1594
 
1595
  # @ woocommerce-germanized
1596
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:927
1597
  msgid "Hide Shipping Select"
1598
  msgstr "Versandarten Auswahl"
1599
 
1600
  # @ woocommerce-germanized
1601
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:928
1602
  msgid "Hide shipping rate selection from checkout?"
1603
  msgstr "Die Auswahl von Versandarten im Checkout deaktivieren?"
1604
 
1605
  # @ woocommerce-germanized
1606
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:932
1607
  msgid ""
1608
  "This option will hide shipping rate selection from checkout. By then "
1609
  "customers will only be able to change their shipping rate on cart page."
@@ -1613,18 +1667,18 @@ msgstr ""
1613
  "Versandmethode ändern."
1614
 
1615
  # @ woocommerce-germanized
1616
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:936
1617
  msgid "Show back to cart button"
1618
  msgstr "Bestellung bearbeiten"
1619
 
1620
  # @ woocommerce-germanized
1621
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:937
1622
  msgid "Show back to cart button within your checkout table?"
1623
  msgstr ""
1624
  "Einen \"Bestellung bearbeiten\" Button in der Bestellübersicht anzeigen?"
1625
 
1626
  # @ woocommerce-germanized
1627
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:941
1628
  msgid ""
1629
  "This button may let your customer edit their order before submitting. Some "
1630
  "people state that this button should be hidden to avoid legal problems."
@@ -1636,28 +1690,28 @@ msgstr ""
1636
  "keine weitere Informationen abgedruckt werden sollten."
1637
 
1638
  # @ woocommerce-germanized
1639
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:945
1640
  msgid "Show edit data notice"
1641
  msgstr "Bestellung prüfen Hinweis"
1642
 
1643
  # @ woocommerce-germanized
1644
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:946
1645
  msgid "Show a \"check-your-entries\" notice to the user?"
1646
  msgstr "Einen \"Bestellung prüfen\" Hinweis anzeigen?"
1647
 
1648
  # @ woocommerce-germanized
1649
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:950
1650
  msgid "This notice will be added right before the order comments field."
1651
  msgstr ""
1652
  "Dieser Hinweis wird direkt oberhalb des Bestellhinweise-Feldes eingefügt."
1653
 
1654
  # @ woocommerce-germanized
1655
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:954
1656
  msgid "Checkout Table Color"
1657
  msgstr "Hintergrundfarbe der Tabelle"
1658
 
1659
  # @ woocommerce-germanized
1660
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:956
1661
  msgid ""
1662
  "Choose the color of your checkout product table. This table should be "
1663
  "highlighted within your checkout page."
@@ -1666,17 +1720,17 @@ msgstr ""
1666
  "Tabelle sollte sich farblich vom Rest des Inhalts abheben."
1667
 
1668
  # @ woocommerce-germanized
1669
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:962
1670
  msgid "Checkout Legal Display"
1671
  msgstr "Checkbox oder Text"
1672
 
1673
  # @ woocommerce-germanized
1674
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:963
1675
  msgid "Use Text without Checkbox"
1676
  msgstr "Rechtshinweis ohne Checkbox."
1677
 
1678
  # @ woocommerce-germanized
1679
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:965
1680
  msgid ""
1681
  "This version will remove checkboxes from Checkout and display a text "
1682
  "instead. This seems to be legally compliant (Zalando & Co are using this "
@@ -1687,12 +1741,12 @@ msgstr ""
1687
  "diese Form)"
1688
 
1689
  # @ woocommerce-germanized
1690
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:971
1691
  msgid "Legal Text"
1692
  msgstr "Rechtlicher Hinweistext"
1693
 
1694
  # @ woocommerce-germanized
1695
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:972
1696
  msgid ""
1697
  "Choose a Plain Text which will be shown right above checkout submit button. "
1698
  "Use {term_link}{/term_link}, {data_security_link}{/data_security_link}, "
@@ -1705,7 +1759,7 @@ msgstr ""
1705
  "revocation_link} um die jeweiligen Links zu den Seiten einzufügen."
1706
 
1707
  # @ woocommerce-germanized
1708
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:974
1709
  msgid ""
1710
  "With your order, you agree to have read and understood our {term_link}Terms "
1711
  "and Conditions{/term_link} and your {revocation_link}Right of Recission{/"
@@ -1716,12 +1770,12 @@ msgstr ""
1716
  "revocation_link} einverstanden."
1717
 
1718
  # @ woocommerce-germanized
1719
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:981
1720
  msgid "Legal Text Error"
1721
  msgstr "Fehlermeldung der Checkbox"
1722
 
1723
  # @ woocommerce-germanized
1724
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:982
1725
  msgid ""
1726
  "If you have chosen to use checkbox validation please choose a error message "
1727
  "which will be shown if the user doesn't check checkbox. Use {term_link}{/"
@@ -1736,7 +1790,7 @@ msgstr ""
1736
  "revocation_link}"
1737
 
1738
  # @ woocommerce-germanized
1739
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:984
1740
  msgid ""
1741
  "To finish the order you have to accept to our {term_link}Terms and "
1742
  "Conditions{/term_link} and {revocation_link}Right of Recission{/"
@@ -1746,17 +1800,17 @@ msgstr ""
1746
  "term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
1747
 
1748
  # @ woocommerce-germanized
1749
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:991
1750
  msgid "Show digital notice"
1751
  msgstr "Checkbox digitale Produkte"
1752
 
1753
  # @ woocommerce-germanized
1754
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:992
1755
  msgid "Show checkbox for digital products."
1756
  msgstr "Checkbox bei digitalen Produkten anzeigen."
1757
 
1758
  # @ woocommerce-germanized
1759
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:993
1760
  msgid ""
1761
  "Disable this option if you want your customers to obtain their right of "
1762
  "recission even if digital products are being bought."
@@ -1766,12 +1820,12 @@ msgstr ""
1766
  "werden, dass im Falle von digitalen Produkten das Widerrufsrecht erlischt."
1767
 
1768
  # @ woocommerce-germanized
1769
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1000
1770
  msgid "Digital Product types"
1771
  msgstr "Digitale Produkttypen"
1772
 
1773
  # @ woocommerce-germanized
1774
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1001
1775
  msgid ""
1776
  "Select product types for which the loss of recission notice is shown. "
1777
  "Product types like \"simple product\" may be redudant because they include "
@@ -1783,12 +1837,12 @@ msgstr ""
1783
  "einschließen."
1784
 
1785
  # @ woocommerce-germanized
1786
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1011
1787
  msgid "Legal Digital Text"
1788
  msgstr "Hinweis Digital"
1789
 
1790
  # @ woocommerce-germanized
1791
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1012
1792
  msgid ""
1793
  "Choose a Plain Text which will be shown right above checkout submit button "
1794
  "if a user has picked a digital product. See legal text option for possible "
@@ -1799,7 +1853,7 @@ msgstr ""
1799
  "Platzhalter verwenden wie beim Rechtlichen Hinweistext"
1800
 
1801
  # @ woocommerce-germanized
1802
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1014
1803
  msgid ""
1804
  "For digital products: I strongly agree that the execution of the agreement "
1805
  "starts before the revocation period has expired. I am aware that my right of "
@@ -1810,13 +1864,13 @@ msgstr ""
1810
  "bekannt, dass mit Beginn der Ausführung mein Widerrufsrecht erlischt."
1811
 
1812
  # @ woocommerce-germanized
1813
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1021
1814
  msgid "Legal Digital Error"
1815
  msgstr "Fehlermeldung Digital"
1816
 
1817
  # @ woocommerce-germanized
1818
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1022
1819
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1061
1820
  msgid ""
1821
  "This text will be shown as error message if customer has not checked the "
1822
  "corresponding checkbox. See legal text option for possible placeholders."
@@ -1826,7 +1880,7 @@ msgstr ""
1826
  "Hinweistext für eine Liste der Platzhalter."
1827
 
1828
  # @ woocommerce-germanized
1829
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1024
1830
  #: includes/wc-gzd-cart-functions.php:317
1831
  msgid ""
1832
  "To retrieve direct access to digital content you have to agree to the loss "
@@ -1836,12 +1890,12 @@ msgstr ""
1836
  "Widerrufsrecht verzichten."
1837
 
1838
  # @ woocommerce-germanized
1839
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1031
1840
  msgid "Digital Confirmation Notice"
1841
  msgstr "Digitale Bestätigung"
1842
 
1843
  # @ woocommerce-germanized
1844
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1032
1845
  msgid ""
1846
  "This text will be appended to your order processing email if the order "
1847
  "contains digital products. Use placeholders {link}{/link} to insert link to "
@@ -1852,7 +1906,7 @@ msgstr ""
1852
  "Platzhalter {link}{/link} um einen Link zur Widerrufsbelehrung einzufügen."
1853
 
1854
  # @ woocommerce-germanized
1855
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1035
1856
  msgid ""
1857
  "Furthermore you have expressly agreed to start the performance of the "
1858
  "contract for digital items (e.g. downloads) before expiry of the withdrawal "
@@ -1866,17 +1920,17 @@ msgstr ""
1866
  "verlieren."
1867
 
1868
  # @ woocommerce-germanized
1869
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1041
1870
  msgid "Show service notice"
1871
  msgstr "Checkbox Dienstleistungen"
1872
 
1873
  # @ woocommerce-germanized
1874
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1042
1875
  msgid "Show checkbox for service products."
1876
  msgstr "Checkbox bei Dienstleistungen anzeigen."
1877
 
1878
  # @ woocommerce-germanized
1879
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1043
1880
  msgid ""
1881
  "Disable this option if you want your customers to obtain their right of "
1882
  "recission even if service products are being bought."
@@ -1887,12 +1941,12 @@ msgstr ""
1887
  "Widerrufsfrist mit der Dienstleistung begonnen wird."
1888
 
1889
  # @ woocommerce-germanized
1890
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1050
1891
  msgid "Legal Service Text"
1892
  msgstr "Hinweis Dienstleistungen"
1893
 
1894
  # @ woocommerce-germanized
1895
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1051
1896
  msgid ""
1897
  "Choose a Plain Text which will be shown right above checkout submit button "
1898
  "if a user has picked a service product. See legal text option for possible "
@@ -1903,7 +1957,7 @@ msgstr ""
1903
  "Platzhalter verwenden wie beim Rechtlichen Hinweistext."
1904
 
1905
  # @ woocommerce-germanized
1906
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1053
1907
  #: includes/wc-gzd-cart-functions.php:339
1908
  msgid ""
1909
  "For services: I demand and acknowledge the immediate performance of the "
@@ -1916,12 +1970,12 @@ msgstr ""
1916
  "vollständiger Erfüllung des Vertrages erlischt."
1917
 
1918
  # @ woocommerce-germanized
1919
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1060
1920
  msgid "Legal Service Error"
1921
  msgstr "Fehlermeldung"
1922
 
1923
  # @ woocommerce-germanized
1924
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1063
1925
  #: includes/wc-gzd-cart-functions.php:348
1926
  msgid ""
1927
  "To allow the immediate performance of the services you have to agree to the "
@@ -1931,12 +1985,12 @@ msgstr ""
1931
  "Widerrufsfrist zu."
1932
 
1933
  # @ woocommerce-germanized
1934
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1070
1935
  msgid "Service Confirmation Notice"
1936
  msgstr "Dienstleistung Bestätigung"
1937
 
1938
  # @ woocommerce-germanized
1939
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1071
1940
  msgid ""
1941
  "This text will be appended to your order processing email if the order "
1942
  "contains service products. Use placeholders {link}{/link} to insert link to "
@@ -1947,7 +2001,7 @@ msgstr ""
1947
  "Platzhalter {link}{/link} um einen Link zur Widerrufsbelehrung einzufügen."
1948
 
1949
  # @ woocommerce-germanized
1950
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1074
1951
  msgid ""
1952
  "Furthermore you have expressly agreed to start the performance of the "
1953
  "contract for services before expiry of the withdrawal period. I have noted "
@@ -1961,18 +2015,18 @@ msgstr ""
1961
  "erlischt."
1962
 
1963
  # @ woocommerce-germanized
1964
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1080
1965
  msgid "Parcel Delivery Checkbox"
1966
  msgstr "Paketdienstleister Checkbox"
1967
 
1968
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1081
1969
  msgid ""
1970
  "Show checkbox for data transmission to third party parcel service providers."
1971
  msgstr ""
1972
  "Checkbox zur Erlaubnis der Datenweitergabe an den Paketdienstleister "
1973
  "einfügen."
1974
 
1975
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1082
1976
  msgid ""
1977
  "You may optionally choose to show a checkbox which lets the customer accept "
1978
  "data transmission to a third party parcel service provider to receive parcel "
@@ -1986,15 +2040,15 @@ msgstr ""
1986
  "weitergeleitet werden. "
1987
 
1988
  # @ woocommerce-germanized
1989
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1089
1990
  msgid "Checkbox required"
1991
  msgstr "Checkbox verpflichtend"
1992
 
1993
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1090
1994
  msgid "Make the parcel delivery checkbox a required field."
1995
  msgstr "Paketdienstleister Checkbox zum Pflichtfeld machen?"
1996
 
1997
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1091
1998
  msgid ""
1999
  "For some reason you may want to force your customers to Opt-In to the data "
2000
  "transmission to a third party parcel service provider."
@@ -2004,11 +2058,11 @@ msgstr ""
2004
  "Fall diese Option aus."
2005
 
2006
  # @ woocommerce-germanized
2007
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1098
2008
  msgid "Parcel Delivery Text"
2009
  msgstr "Paketdienstleister Text"
2010
 
2011
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1099
2012
  msgid ""
2013
  "Choose a Plain Text which will be shown right next to the corresponding "
2014
  "checkbox to inform the customer about the data being transfered to the third "
@@ -2020,7 +2074,7 @@ msgstr ""
2020
  "den Paketdienstleister. Verwende den Platzhalter {shipping_method_title} um "
2021
  "den Titel der Versandmethoden einzubetten."
2022
 
2023
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1101
2024
  #: includes/wc-gzd-cart-functions.php:388
2025
  msgid ""
2026
  "Yes, I would like to be reminded via E-mail about parcel delivery "
@@ -2032,26 +2086,26 @@ msgstr ""
2032
  "wird nur für diesen einmaligen Zweck an unseren Paketdienstleister "
2033
  "weitergegeben."
2034
 
2035
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1109
2036
  msgid "Select shipping methods which are applicable for the Opt-In Checkbox."
2037
  msgstr ""
2038
  "Wähle Versandmethoden aus für die die Paketdienstleister Checkbox angezeigt "
2039
  "werden soll."
2040
 
2041
  # @ woocommerce-germanized
2042
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1119
2043
  msgid "Pay now Button"
2044
  msgstr "Jetzt bezahlen Button"
2045
 
2046
  # @ woocommerce-germanized
2047
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1120
2048
  msgid "Add a pay now button to emails and order success page."
2049
  msgstr ""
2050
  "Füge einen jetzt bezahlen - Button zur E-Mail und der Bestätigungs-Seite "
2051
  "hinzu."
2052
 
2053
  # @ woocommerce-germanized
2054
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1121
2055
  msgid ""
2056
  "Add a pay now button to order confirmation email and order success page if "
2057
  "the order awaits payment (PayPal etc)."
@@ -2061,30 +2115,30 @@ msgstr ""
2061
  "benötigt (z.B. per PayPal)."
2062
 
2063
  # @ woocommerce-germanized
2064
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1128
2065
  msgid "Order Success Text"
2066
  msgstr "Bestellung eingegangen"
2067
 
2068
  # @ woocommerce-germanized
2069
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1129
2070
  msgid "Choose a custom text to display on order success page."
2071
  msgstr ""
2072
  "Hier kannst du einen individuellen kurzen Text eingeben, der nach der "
2073
  "Bestellung ausgegeben wird."
2074
 
2075
  # @ woocommerce-germanized
2076
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1137
2077
  msgid "Order Success Data"
2078
  msgstr "Bestellbestätigungs-Daten"
2079
 
2080
  # @ woocommerce-germanized
2081
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1138
2082
  msgid "Hide product table and customer data on order success page"
2083
  msgstr ""
2084
  "Produktdetails (Tabelle, Kundeninfos) von der Bestätigungsseite entfernen."
2085
 
2086
  # @ woocommerce-germanized
2087
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1246
2088
  msgid ""
2089
  "Sorry, but the new Virtual VAT rules cannot be applied to small business."
2090
  msgstr ""
@@ -2669,8 +2723,8 @@ msgstr "jetzt upgraden"
2669
  #: includes/api/class-wc-gzd-rest-customers-controller.php:92
2670
  #: includes/api/class-wc-gzd-rest-orders-controller.php:87
2671
  #: includes/api/class-wc-gzd-rest-orders-controller.php:94
2672
- #: includes/class-wc-gzd-checkout.php:252
2673
- #: includes/class-wc-gzd-checkout.php:263
2674
  #: includes/class-wc-gzd-customer-helper.php:84
2675
  #: includes/class-wc-gzd-customer-helper.php:91
2676
  msgid "Title"
@@ -2919,9 +2973,10 @@ msgstr ""
2919
  "Mail mit Ihren Daten als Bestätigung."
2920
 
2921
  # @ woocommerce-germanized
2922
- #: includes/class-wc-gzd-checkout.php:253
2923
- #: includes/class-wc-gzd-checkout.php:261
2924
- #: includes/class-wc-gzd-checkout.php:403
 
2925
  #: includes/class-wc-gzd-customer-helper.php:86
2926
  #: includes/class-wc-gzd-customer-helper.php:93
2927
  #: includes/class-wc-gzd-revocation.php:41
@@ -2929,9 +2984,10 @@ msgid "Mr."
2929
  msgstr "Herr"
2930
 
2931
  # @ woocommerce-germanized
2932
- #: includes/class-wc-gzd-checkout.php:253
2933
- #: includes/class-wc-gzd-checkout.php:261
2934
- #: includes/class-wc-gzd-checkout.php:403
 
2935
  #: includes/class-wc-gzd-customer-helper.php:86
2936
  #: includes/class-wc-gzd-customer-helper.php:93
2937
  #: includes/class-wc-gzd-revocation.php:42
@@ -2969,6 +3025,59 @@ msgstr "Vielen Dank. Ihr Benutzerkonto wurde erfolgreich aktiviert."
2969
  msgid "Sorry, but this activation code cannot be found."
2970
  msgstr "Sorry, dieser Aktivierungscode ist uns leider nicht bekannt."
2971
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2972
  # @ woocommerce-germanized
2973
  #: includes/class-wc-gzd-ekomi.php:55
2974
  msgid "eKomi Customer"
@@ -3072,7 +3181,7 @@ msgid "eKomi Options"
3072
  msgstr "eKomi"
3073
 
3074
  # @ woocommerce-germanized
3075
- #: includes/class-wc-gzd-emails.php:387
3076
  msgctxt "revocation-form"
3077
  msgid "Forward your Revocation online"
3078
  msgstr "Widerruf online erklären"
@@ -3337,8 +3446,8 @@ msgstr "Neuen Preishinweis anlegen"
3337
  msgid "New Price Label Name"
3338
  msgstr "Name des neuen Preishinweises"
3339
 
3340
- #: includes/class-wc-gzd-product-variable.php:117
3341
- #: includes/class-wc-gzd-product-variable.php:122
3342
  #, php-format
3343
  msgctxt "Price range: from-to"
3344
  msgid "%1$s&ndash;%2$s"
@@ -3984,7 +4093,7 @@ msgstr ""
3984
  # @ woocommerce-germanized
3985
  # @ woocommerce
3986
  #: includes/gateways/invoice/class-wc-gzd-gateway-invoice.php:50
3987
- #: woocommerce-germanized.php:546
3988
  msgid "Settings"
3989
  msgstr "Einstellungen"
3990
 
2
  msgstr ""
3
  "Project-Id-Version: WooCommerce Germanized v1.5.1\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2017-03-17 17:56+0100\n"
6
+ "PO-Revision-Date: 2017-03-17 18:37+0100\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "Language: de_DE\n"
91
  # @ woocommerce-germanized
92
  #: includes/abstracts/abstract-wc-gzd-product.php:215
93
  #: includes/compatibility/class-wc-gzd-compatibility-woocommerce-subscriptions.php:72
94
+ #: includes/wc-gzd-cart-functions.php:269 woocommerce-germanized.php:740
95
  msgid "incl. VAT"
96
  msgstr "inkl. MwSt."
97
 
103
  # @ woocommerce-germanized
104
  #: includes/abstracts/abstract-wc-gzd-product.php:217
105
  #: includes/compatibility/class-wc-gzd-compatibility-woocommerce-subscriptions.php:72
106
+ #: includes/wc-gzd-cart-functions.php:269 woocommerce-germanized.php:740
107
  #, php-format
108
  msgid "incl. %s%% VAT"
109
  msgstr "inkl. %s%% MwSt."
178
  # @ woocommerce-germanized
179
  #: includes/admin/class-wc-gzd-admin-status.php:43
180
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:280
181
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1134
182
  msgid "Shipping Methods"
183
  msgstr "Versandarten"
184
 
194
  msgstr "Willkommen bei WooCommerce Germanized"
195
 
196
  # @ woocommerce-germanized
197
+ #: includes/admin/class-wc-gzd-admin-welcome.php:309
198
  msgid "Go to WooCommerce Germanized Settings"
199
  msgstr "zu den WooCommerce Germanized Einstellungen"
200
 
1503
  msgid "Checkout & Cart"
1504
  msgstr "Checkout & Warenkorb"
1505
 
 
1506
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:891
1507
+ msgid "DHL Parcel Shops"
1508
+ msgstr "DHL Packstationen"
1509
+
1510
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:892
1511
+ msgid ""
1512
+ "Allow customers to choose a DHL parcel shop or packing station as delivery "
1513
+ "address."
1514
+ msgstr "Versand an DHL Packstation bzw. Paketshops aktivieren."
1515
+
1516
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:896
1517
+ msgid ""
1518
+ "This option adds a checkbox to your checkout shipping fields which allows "
1519
+ "the customer to optionally choose a DHL packing station or parcel shop for "
1520
+ "delivery. A PostNumber is required."
1521
+ msgstr ""
1522
+ "Diese Option fügt eine Checkbox in der Kasse (Versandadresse) ein. Hier kann "
1523
+ "der Kunde optional die Lieferung an eine Packstation aktivieren. Fall das "
1524
+ "der Fall ist, muss eine PostNummer angegeben werden."
1525
+
1526
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:900
1527
+ msgid "Supported Countries"
1528
+ msgstr "Unterstützte Länder"
1529
+
1530
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:904
1531
+ msgid "Choose countries which support Parcel Shop delivery."
1532
+ msgstr ""
1533
+ "Wähle hier die Länder an, in denen du die Lieferung an DHL Packstationen "
1534
+ "bzw. Paketshops aktivieren möchtest."
1535
+
1536
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:908
1537
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:237
1538
+ msgid "Parcel Shop Finder"
1539
+ msgstr "Paketshop finden"
1540
+
1541
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:909
1542
+ msgid ""
1543
+ "Enable DHL Parcel Shop Finder to let customers choose a parcel shop nearby."
1544
+ msgstr "Standortsuche nach der nächstgelegenen Packstation aktivieren."
1545
+
1546
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:913
1547
+ #, php-format
1548
+ msgid ""
1549
+ "You may enable this option to add a <a href=\"%s\" target=\"_blank\">Parcel "
1550
+ "Shop Finder</a> to your checkout. Adds an link next to the checkbox. The "
1551
+ "finder (DHL API) opens in an overlay and lets the customer find and choose a "
1552
+ "parcel shop or packing station nearby."
1553
+ msgstr ""
1554
+ "Aktiviere diese Option um die <a href=\"%s\" target=\"_blank"
1555
+ "\">Standortsuche</a> zu aktivieren. Diese Option fügt einen Link neben der "
1556
+ "Checkbox ein bei dessen Klick, die Suche (DHL API) in einer Lightbox "
1557
+ "geöffnet wird. Der Kunde kann eine Packstation bzw. einen Paketshop seiner "
1558
+ "Nähe auswählen und die Daten automatisch übernehmen."
1559
+
1560
+ # @ woocommerce-germanized
1561
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:917
1562
  #: includes/admin/views/html-page-status-germanized.php:55
1563
  msgid "Fallback Mode"
1564
  msgstr "Fallback Modus"
1565
 
1566
  # @ woocommerce-germanized
1567
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:918
1568
  msgid ""
1569
  "Enable to make sure default checkout template is not being overriden by "
1570
  "theme."
1572
  "Überschreiben relevanter Templates im Checkout durch dein Theme verhindern."
1573
 
1574
  # @ woocommerce-germanized
1575
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:922
1576
  msgid ""
1577
  "If you are facing problems within your checkout e.g. legally relevant data "
1578
  "is not showing (terms, delivery time, unit price etc.) your theme seems to "
1586
  "Checkout (review-order.php und form-checkout.php) zu überschreiben. "
1587
 
1588
  # @ woocommerce-germanized
1589
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:926
1590
  msgid "Force free shipping"
1591
  msgstr "Versandmethode erzwingen"
1592
 
1593
  # @ woocommerce-germanized
1594
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:927
1595
  msgid "Force free shipping method if available?"
1596
  msgstr "Kostenlosen Versand erzwingen wenn die Methode zur Verfügung steht?"
1597
 
1598
  # @ woocommerce-germanized
1599
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:931
1600
  msgid ""
1601
  "By default WooCommerce will let customers choose other shipping methods than "
1602
  "free shipping (if available). This option will force free shipping if "
1607
  "Versand, sobald dieser verfügbar ist."
1608
 
1609
  # @ woocommerce-germanized
1610
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:935
1611
  msgid "Hide taxes estimated"
1612
  msgstr "Hinweis \"Steuern geschätzt\""
1613
 
1614
  # @ woocommerce-germanized
1615
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:936
1616
  msgid ""
1617
  "Do you want to hide the \"taxes and shipping estimated\" text from your cart?"
1618
  msgstr "Den Hinweis \"Versandkosten und Steuern werden geschätzt\" entfernen?"
1619
 
1620
  # @ woocommerce-germanized
1621
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:940
1622
  msgid ""
1623
  "By default WooCommerce adds a \"taxes and shipping estimated\" text to your "
1624
  "cart. This might puzzle your customers and may not meet german law."
1628
  "Markt geeignet."
1629
 
1630
  # @ woocommerce-germanized
1631
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:944
1632
  msgid "Show Thumbnails"
1633
  msgstr "Thumbnails anzeigen"
1634
 
1635
  # @ woocommerce-germanized
1636
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:945
1637
  msgid "Show product thumbnails on checkout page?"
1638
  msgstr "Produktbilder im Checkout darstellen?"
1639
 
1640
  # @ woocommerce-germanized
1641
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:949
1642
  msgid ""
1643
  "Uncheck if you don't want to show your product thumbnails within checkout "
1644
  "table."
1647
  "bekommen möchtest."
1648
 
1649
  # @ woocommerce-germanized
1650
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:953
1651
  msgid "Hide Shipping Select"
1652
  msgstr "Versandarten Auswahl"
1653
 
1654
  # @ woocommerce-germanized
1655
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:954
1656
  msgid "Hide shipping rate selection from checkout?"
1657
  msgstr "Die Auswahl von Versandarten im Checkout deaktivieren?"
1658
 
1659
  # @ woocommerce-germanized
1660
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:958
1661
  msgid ""
1662
  "This option will hide shipping rate selection from checkout. By then "
1663
  "customers will only be able to change their shipping rate on cart page."
1667
  "Versandmethode ändern."
1668
 
1669
  # @ woocommerce-germanized
1670
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:962
1671
  msgid "Show back to cart button"
1672
  msgstr "Bestellung bearbeiten"
1673
 
1674
  # @ woocommerce-germanized
1675
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:963
1676
  msgid "Show back to cart button within your checkout table?"
1677
  msgstr ""
1678
  "Einen \"Bestellung bearbeiten\" Button in der Bestellübersicht anzeigen?"
1679
 
1680
  # @ woocommerce-germanized
1681
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:967
1682
  msgid ""
1683
  "This button may let your customer edit their order before submitting. Some "
1684
  "people state that this button should be hidden to avoid legal problems."
1690
  "keine weitere Informationen abgedruckt werden sollten."
1691
 
1692
  # @ woocommerce-germanized
1693
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:971
1694
  msgid "Show edit data notice"
1695
  msgstr "Bestellung prüfen Hinweis"
1696
 
1697
  # @ woocommerce-germanized
1698
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:972
1699
  msgid "Show a \"check-your-entries\" notice to the user?"
1700
  msgstr "Einen \"Bestellung prüfen\" Hinweis anzeigen?"
1701
 
1702
  # @ woocommerce-germanized
1703
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:976
1704
  msgid "This notice will be added right before the order comments field."
1705
  msgstr ""
1706
  "Dieser Hinweis wird direkt oberhalb des Bestellhinweise-Feldes eingefügt."
1707
 
1708
  # @ woocommerce-germanized
1709
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:980
1710
  msgid "Checkout Table Color"
1711
  msgstr "Hintergrundfarbe der Tabelle"
1712
 
1713
  # @ woocommerce-germanized
1714
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:982
1715
  msgid ""
1716
  "Choose the color of your checkout product table. This table should be "
1717
  "highlighted within your checkout page."
1720
  "Tabelle sollte sich farblich vom Rest des Inhalts abheben."
1721
 
1722
  # @ woocommerce-germanized
1723
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:988
1724
  msgid "Checkout Legal Display"
1725
  msgstr "Checkbox oder Text"
1726
 
1727
  # @ woocommerce-germanized
1728
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:989
1729
  msgid "Use Text without Checkbox"
1730
  msgstr "Rechtshinweis ohne Checkbox."
1731
 
1732
  # @ woocommerce-germanized
1733
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:991
1734
  msgid ""
1735
  "This version will remove checkboxes from Checkout and display a text "
1736
  "instead. This seems to be legally compliant (Zalando & Co are using this "
1741
  "diese Form)"
1742
 
1743
  # @ woocommerce-germanized
1744
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:997
1745
  msgid "Legal Text"
1746
  msgstr "Rechtlicher Hinweistext"
1747
 
1748
  # @ woocommerce-germanized
1749
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:998
1750
  msgid ""
1751
  "Choose a Plain Text which will be shown right above checkout submit button. "
1752
  "Use {term_link}{/term_link}, {data_security_link}{/data_security_link}, "
1759
  "revocation_link} um die jeweiligen Links zu den Seiten einzufügen."
1760
 
1761
  # @ woocommerce-germanized
1762
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1000
1763
  msgid ""
1764
  "With your order, you agree to have read and understood our {term_link}Terms "
1765
  "and Conditions{/term_link} and your {revocation_link}Right of Recission{/"
1770
  "revocation_link} einverstanden."
1771
 
1772
  # @ woocommerce-germanized
1773
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1007
1774
  msgid "Legal Text Error"
1775
  msgstr "Fehlermeldung der Checkbox"
1776
 
1777
  # @ woocommerce-germanized
1778
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1008
1779
  msgid ""
1780
  "If you have chosen to use checkbox validation please choose a error message "
1781
  "which will be shown if the user doesn't check checkbox. Use {term_link}{/"
1790
  "revocation_link}"
1791
 
1792
  # @ woocommerce-germanized
1793
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1010
1794
  msgid ""
1795
  "To finish the order you have to accept to our {term_link}Terms and "
1796
  "Conditions{/term_link} and {revocation_link}Right of Recission{/"
1800
  "term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
1801
 
1802
  # @ woocommerce-germanized
1803
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1017
1804
  msgid "Show digital notice"
1805
  msgstr "Checkbox digitale Produkte"
1806
 
1807
  # @ woocommerce-germanized
1808
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1018
1809
  msgid "Show checkbox for digital products."
1810
  msgstr "Checkbox bei digitalen Produkten anzeigen."
1811
 
1812
  # @ woocommerce-germanized
1813
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1019
1814
  msgid ""
1815
  "Disable this option if you want your customers to obtain their right of "
1816
  "recission even if digital products are being bought."
1820
  "werden, dass im Falle von digitalen Produkten das Widerrufsrecht erlischt."
1821
 
1822
  # @ woocommerce-germanized
1823
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1026
1824
  msgid "Digital Product types"
1825
  msgstr "Digitale Produkttypen"
1826
 
1827
  # @ woocommerce-germanized
1828
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1027
1829
  msgid ""
1830
  "Select product types for which the loss of recission notice is shown. "
1831
  "Product types like \"simple product\" may be redudant because they include "
1837
  "einschließen."
1838
 
1839
  # @ woocommerce-germanized
1840
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1037
1841
  msgid "Legal Digital Text"
1842
  msgstr "Hinweis Digital"
1843
 
1844
  # @ woocommerce-germanized
1845
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1038
1846
  msgid ""
1847
  "Choose a Plain Text which will be shown right above checkout submit button "
1848
  "if a user has picked a digital product. See legal text option for possible "
1853
  "Platzhalter verwenden wie beim Rechtlichen Hinweistext"
1854
 
1855
  # @ woocommerce-germanized
1856
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1040
1857
  msgid ""
1858
  "For digital products: I strongly agree that the execution of the agreement "
1859
  "starts before the revocation period has expired. I am aware that my right of "
1864
  "bekannt, dass mit Beginn der Ausführung mein Widerrufsrecht erlischt."
1865
 
1866
  # @ woocommerce-germanized
1867
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1047
1868
  msgid "Legal Digital Error"
1869
  msgstr "Fehlermeldung Digital"
1870
 
1871
  # @ woocommerce-germanized
1872
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1048
1873
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1087
1874
  msgid ""
1875
  "This text will be shown as error message if customer has not checked the "
1876
  "corresponding checkbox. See legal text option for possible placeholders."
1880
  "Hinweistext für eine Liste der Platzhalter."
1881
 
1882
  # @ woocommerce-germanized
1883
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1050
1884
  #: includes/wc-gzd-cart-functions.php:317
1885
  msgid ""
1886
  "To retrieve direct access to digital content you have to agree to the loss "
1890
  "Widerrufsrecht verzichten."
1891
 
1892
  # @ woocommerce-germanized
1893
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1057
1894
  msgid "Digital Confirmation Notice"
1895
  msgstr "Digitale Bestätigung"
1896
 
1897
  # @ woocommerce-germanized
1898
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1058
1899
  msgid ""
1900
  "This text will be appended to your order processing email if the order "
1901
  "contains digital products. Use placeholders {link}{/link} to insert link to "
1906
  "Platzhalter {link}{/link} um einen Link zur Widerrufsbelehrung einzufügen."
1907
 
1908
  # @ woocommerce-germanized
1909
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1061
1910
  msgid ""
1911
  "Furthermore you have expressly agreed to start the performance of the "
1912
  "contract for digital items (e.g. downloads) before expiry of the withdrawal "
1920
  "verlieren."
1921
 
1922
  # @ woocommerce-germanized
1923
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1067
1924
  msgid "Show service notice"
1925
  msgstr "Checkbox Dienstleistungen"
1926
 
1927
  # @ woocommerce-germanized
1928
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1068
1929
  msgid "Show checkbox for service products."
1930
  msgstr "Checkbox bei Dienstleistungen anzeigen."
1931
 
1932
  # @ woocommerce-germanized
1933
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1069
1934
  msgid ""
1935
  "Disable this option if you want your customers to obtain their right of "
1936
  "recission even if service products are being bought."
1941
  "Widerrufsfrist mit der Dienstleistung begonnen wird."
1942
 
1943
  # @ woocommerce-germanized
1944
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1076
1945
  msgid "Legal Service Text"
1946
  msgstr "Hinweis Dienstleistungen"
1947
 
1948
  # @ woocommerce-germanized
1949
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1077
1950
  msgid ""
1951
  "Choose a Plain Text which will be shown right above checkout submit button "
1952
  "if a user has picked a service product. See legal text option for possible "
1957
  "Platzhalter verwenden wie beim Rechtlichen Hinweistext."
1958
 
1959
  # @ woocommerce-germanized
1960
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1079
1961
  #: includes/wc-gzd-cart-functions.php:339
1962
  msgid ""
1963
  "For services: I demand and acknowledge the immediate performance of the "
1970
  "vollständiger Erfüllung des Vertrages erlischt."
1971
 
1972
  # @ woocommerce-germanized
1973
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1086
1974
  msgid "Legal Service Error"
1975
  msgstr "Fehlermeldung"
1976
 
1977
  # @ woocommerce-germanized
1978
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1089
1979
  #: includes/wc-gzd-cart-functions.php:348
1980
  msgid ""
1981
  "To allow the immediate performance of the services you have to agree to the "
1985
  "Widerrufsfrist zu."
1986
 
1987
  # @ woocommerce-germanized
1988
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1096
1989
  msgid "Service Confirmation Notice"
1990
  msgstr "Dienstleistung Bestätigung"
1991
 
1992
  # @ woocommerce-germanized
1993
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1097
1994
  msgid ""
1995
  "This text will be appended to your order processing email if the order "
1996
  "contains service products. Use placeholders {link}{/link} to insert link to "
2001
  "Platzhalter {link}{/link} um einen Link zur Widerrufsbelehrung einzufügen."
2002
 
2003
  # @ woocommerce-germanized
2004
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1100
2005
  msgid ""
2006
  "Furthermore you have expressly agreed to start the performance of the "
2007
  "contract for services before expiry of the withdrawal period. I have noted "
2015
  "erlischt."
2016
 
2017
  # @ woocommerce-germanized
2018
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1106
2019
  msgid "Parcel Delivery Checkbox"
2020
  msgstr "Paketdienstleister Checkbox"
2021
 
2022
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1107
2023
  msgid ""
2024
  "Show checkbox for data transmission to third party parcel service providers."
2025
  msgstr ""
2026
  "Checkbox zur Erlaubnis der Datenweitergabe an den Paketdienstleister "
2027
  "einfügen."
2028
 
2029
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1108
2030
  msgid ""
2031
  "You may optionally choose to show a checkbox which lets the customer accept "
2032
  "data transmission to a third party parcel service provider to receive parcel "
2040
  "weitergeleitet werden. "
2041
 
2042
  # @ woocommerce-germanized
2043
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1115
2044
  msgid "Checkbox required"
2045
  msgstr "Checkbox verpflichtend"
2046
 
2047
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1116
2048
  msgid "Make the parcel delivery checkbox a required field."
2049
  msgstr "Paketdienstleister Checkbox zum Pflichtfeld machen?"
2050
 
2051
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1117
2052
  msgid ""
2053
  "For some reason you may want to force your customers to Opt-In to the data "
2054
  "transmission to a third party parcel service provider."
2058
  "Fall diese Option aus."
2059
 
2060
  # @ woocommerce-germanized
2061
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1124
2062
  msgid "Parcel Delivery Text"
2063
  msgstr "Paketdienstleister Text"
2064
 
2065
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1125
2066
  msgid ""
2067
  "Choose a Plain Text which will be shown right next to the corresponding "
2068
  "checkbox to inform the customer about the data being transfered to the third "
2074
  "den Paketdienstleister. Verwende den Platzhalter {shipping_method_title} um "
2075
  "den Titel der Versandmethoden einzubetten."
2076
 
2077
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1127
2078
  #: includes/wc-gzd-cart-functions.php:388
2079
  msgid ""
2080
  "Yes, I would like to be reminded via E-mail about parcel delivery "
2086
  "wird nur für diesen einmaligen Zweck an unseren Paketdienstleister "
2087
  "weitergegeben."
2088
 
2089
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1135
2090
  msgid "Select shipping methods which are applicable for the Opt-In Checkbox."
2091
  msgstr ""
2092
  "Wähle Versandmethoden aus für die die Paketdienstleister Checkbox angezeigt "
2093
  "werden soll."
2094
 
2095
  # @ woocommerce-germanized
2096
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1145
2097
  msgid "Pay now Button"
2098
  msgstr "Jetzt bezahlen Button"
2099
 
2100
  # @ woocommerce-germanized
2101
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1146
2102
  msgid "Add a pay now button to emails and order success page."
2103
  msgstr ""
2104
  "Füge einen jetzt bezahlen - Button zur E-Mail und der Bestätigungs-Seite "
2105
  "hinzu."
2106
 
2107
  # @ woocommerce-germanized
2108
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1147
2109
  msgid ""
2110
  "Add a pay now button to order confirmation email and order success page if "
2111
  "the order awaits payment (PayPal etc)."
2115
  "benötigt (z.B. per PayPal)."
2116
 
2117
  # @ woocommerce-germanized
2118
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1154
2119
  msgid "Order Success Text"
2120
  msgstr "Bestellung eingegangen"
2121
 
2122
  # @ woocommerce-germanized
2123
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1155
2124
  msgid "Choose a custom text to display on order success page."
2125
  msgstr ""
2126
  "Hier kannst du einen individuellen kurzen Text eingeben, der nach der "
2127
  "Bestellung ausgegeben wird."
2128
 
2129
  # @ woocommerce-germanized
2130
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1163
2131
  msgid "Order Success Data"
2132
  msgstr "Bestellbestätigungs-Daten"
2133
 
2134
  # @ woocommerce-germanized
2135
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1164
2136
  msgid "Hide product table and customer data on order success page"
2137
  msgstr ""
2138
  "Produktdetails (Tabelle, Kundeninfos) von der Bestätigungsseite entfernen."
2139
 
2140
  # @ woocommerce-germanized
2141
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:1272
2142
  msgid ""
2143
  "Sorry, but the new Virtual VAT rules cannot be applied to small business."
2144
  msgstr ""
2723
  #: includes/api/class-wc-gzd-rest-customers-controller.php:92
2724
  #: includes/api/class-wc-gzd-rest-orders-controller.php:87
2725
  #: includes/api/class-wc-gzd-rest-orders-controller.php:94
2726
+ #: includes/class-wc-gzd-checkout.php:256
2727
+ #: includes/class-wc-gzd-checkout.php:266
2728
  #: includes/class-wc-gzd-customer-helper.php:84
2729
  #: includes/class-wc-gzd-customer-helper.php:91
2730
  msgid "Title"
2973
  "Mail mit Ihren Daten als Bestätigung."
2974
 
2975
  # @ woocommerce-germanized
2976
+ #: includes/class-wc-gzd-checkout.php:257
2977
+ #: includes/class-wc-gzd-checkout.php:265
2978
+ #: includes/class-wc-gzd-checkout.php:290
2979
+ #: includes/class-wc-gzd-checkout.php:424
2980
  #: includes/class-wc-gzd-customer-helper.php:86
2981
  #: includes/class-wc-gzd-customer-helper.php:93
2982
  #: includes/class-wc-gzd-revocation.php:41
2984
  msgstr "Herr"
2985
 
2986
  # @ woocommerce-germanized
2987
+ #: includes/class-wc-gzd-checkout.php:257
2988
+ #: includes/class-wc-gzd-checkout.php:265
2989
+ #: includes/class-wc-gzd-checkout.php:291
2990
+ #: includes/class-wc-gzd-checkout.php:424
2991
  #: includes/class-wc-gzd-customer-helper.php:86
2992
  #: includes/class-wc-gzd-customer-helper.php:93
2993
  #: includes/class-wc-gzd-revocation.php:42
3025
  msgid "Sorry, but this activation code cannot be found."
3026
  msgstr "Sorry, dieser Aktivierungscode ist uns leider nicht bekannt."
3027
 
3028
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:99
3029
+ msgid "Send to DHL Parcel Shop?"
3030
+ msgstr "An DHL Paketshop oder Packstation senden?"
3031
+
3032
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:108
3033
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:127
3034
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:141
3035
+ msgid "Postnumber"
3036
+ msgstr "PostNummer"
3037
+
3038
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:120
3039
+ msgid "DHL Parcel Shop?"
3040
+ msgstr "DHL Paketshop/Packstation?"
3041
+
3042
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:122
3043
+ msgid "No"
3044
+ msgstr "Nein"
3045
+
3046
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:122
3047
+ msgid "Yes"
3048
+ msgstr "Ja"
3049
+
3050
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:123
3051
+ msgid "Select whether delivery to parcel shop should be enabled."
3052
+ msgstr ""
3053
+ "Wähle aus ob die Lieferung an DHL Paketshops bzw. Packstationen aktiviert "
3054
+ "werden soll."
3055
+
3056
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:129
3057
+ msgid ""
3058
+ "In case delivery to parcel shop is enabled please fill in the corresponding "
3059
+ "DHL post number."
3060
+ msgstr ""
3061
+ "Wenn die Lieferung an eine DHL Packstation aktiviert wurde, trage bitte die "
3062
+ "PostNummer ein."
3063
+
3064
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:162
3065
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:213
3066
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:214
3067
+ msgid "Parcel Shop"
3068
+ msgstr "Shop/Packstation"
3069
+
3070
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:181
3071
+ msgid "Your PostNumber should contain numbers only"
3072
+ msgstr "Deine PostNummer sollte nur aus Zahlen bestehen."
3073
+
3074
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:187
3075
+ #: includes/class-wc-gzd-dhl-parcel-shops.php:220
3076
+ #, php-format
3077
+ msgid "Parcel Shop Delivery is only supported in: %s."
3078
+ msgstr ""
3079
+ "Die Lieferung in Paketshops bzw. Packstationen ist nur in %s verfügbar."
3080
+
3081
  # @ woocommerce-germanized
3082
  #: includes/class-wc-gzd-ekomi.php:55
3083
  msgid "eKomi Customer"
3181
  msgstr "eKomi"
3182
 
3183
  # @ woocommerce-germanized
3184
+ #: includes/class-wc-gzd-emails.php:407
3185
  msgctxt "revocation-form"
3186
  msgid "Forward your Revocation online"
3187
  msgstr "Widerruf online erklären"
3446
  msgid "New Price Label Name"
3447
  msgstr "Name des neuen Preishinweises"
3448
 
3449
+ #: includes/class-wc-gzd-product-variable.php:127
3450
+ #: includes/class-wc-gzd-product-variable.php:132
3451
  #, php-format
3452
  msgctxt "Price range: from-to"
3453
  msgid "%1$s&ndash;%2$s"
4093
  # @ woocommerce-germanized
4094
  # @ woocommerce
4095
  #: includes/gateways/invoice/class-wc-gzd-gateway-invoice.php:50
4096
+ #: woocommerce-germanized.php:548
4097
  msgid "Settings"
4098
  msgstr "Einstellungen"
4099
 
includes/abstracts/abstract-wc-gzd-compatibility.php CHANGED
@@ -29,11 +29,11 @@ abstract class WC_GZD_Compatibility {
29
  $version_data[ 'tested_up_to' ] = $version_data[ 'version' ];
30
  } else if ( empty( $version_data[ 'tested_up_to' ] ) ) {
31
  $version_data[ 'tested_up_to' ] = $version_data[ 'requires_at_least' ];
32
- if ( WC_GZD_Dependencies::instance()->compare_versions( $version_data[ 'version' ], $version_data[ 'requires_at_least' ], '>' ) )
33
  $version_data[ 'tested_up_to' ] = $version_data[ 'version' ];
34
  } else if ( empty( $version_data[ 'requires_at_least' ] ) ) {
35
  $version_data[ 'requires_at_least' ] = $version_data[ 'tested_up_to' ];
36
- if ( WC_GZD_Dependencies::instance()->compare_versions( $version_data[ 'version' ], $version_data[ 'requires_at_least' ], '<' ) )
37
  $version_data[ 'requires_at_least' ] = $version_data[ 'version' ];
38
  }
39
 
@@ -53,13 +53,13 @@ abstract class WC_GZD_Compatibility {
53
  }
54
 
55
  public function is_activated() {
56
- return WC_GZD_Dependencies::instance()->is_plugin_activated( $this->plugin_file );
57
  }
58
 
59
  public function is_supported() {
60
- return
61
- WC_GZD_Dependencies::instance()->compare_versions( $this->version_data[ 'version' ], $this->version_data[ 'requires_at_least' ], '>=' ) &&
62
- WC_GZD_Dependencies::instance()->compare_versions( $this->version_data[ 'version' ], $this->version_data[ 'tested_up_to' ], '<=' );
63
  }
64
 
65
  public function get_name() {
29
  $version_data[ 'tested_up_to' ] = $version_data[ 'version' ];
30
  } else if ( empty( $version_data[ 'tested_up_to' ] ) ) {
31
  $version_data[ 'tested_up_to' ] = $version_data[ 'requires_at_least' ];
32
+ if ( wc_gzd_get_dependencies()->compare_versions( $version_data[ 'version' ], $version_data[ 'requires_at_least' ], '>' ) )
33
  $version_data[ 'tested_up_to' ] = $version_data[ 'version' ];
34
  } else if ( empty( $version_data[ 'requires_at_least' ] ) ) {
35
  $version_data[ 'requires_at_least' ] = $version_data[ 'tested_up_to' ];
36
+ if ( wc_gzd_get_dependencies()->compare_versions( $version_data[ 'version' ], $version_data[ 'requires_at_least' ], '<' ) )
37
  $version_data[ 'requires_at_least' ] = $version_data[ 'version' ];
38
  }
39
 
53
  }
54
 
55
  public function is_activated() {
56
+ return wc_gzd_get_dependencies()->is_plugin_activated( $this->plugin_file );
57
  }
58
 
59
  public function is_supported() {
60
+ return
61
+ wc_gzd_get_dependencies()->compare_versions( $this->version_data[ 'version' ], $this->version_data[ 'requires_at_least' ], '>=' ) &&
62
+ wc_gzd_get_dependencies()->compare_versions( $this->version_data[ 'version' ], $this->version_data[ 'tested_up_to' ], '<=' );
63
  }
64
 
65
  public function get_name() {
includes/abstracts/abstract-wc-gzd-product.php CHANGED
@@ -164,23 +164,23 @@ class WC_GZD_Product {
164
 
165
  preg_match( "/<del>(.*?)<\\/del>/si", $price_html, $match_regular );
166
  preg_match( "/<ins>(.*?)<\\/ins>/si", $price_html, $match_sale );
 
167
 
168
  if ( empty( $match_sale ) || empty( $match_regular ) ) {
169
  return $price_html;
170
  }
171
 
172
- $new_price_regular = ( isset( $match_regular[1] ) ? $match_regular[1] : $match_regular[0] );
173
- $new_price_sale = ( isset( $match_sale[1] ) ? $match_sale[1] : $match_sale[0] );
 
174
 
175
  if ( ! empty( $sale_label ) && isset( $match_regular[1] ) )
176
- $new_price_regular = '<span class="wc-gzd-sale-price-label">' . $sale_label . '</span> <del>' . $match_regular[1] . '</del>';
177
 
178
  if ( ! empty( $sale_regular_label ) && isset( $match_sale[1] ) )
179
- $new_price_sale = '<span class="wc-gzd-sale-price-label wc-gzd-sale-price-regular-label">' . $sale_regular_label . '</span> <ins>' . $match_sale[1] . '</ins>';
180
 
181
- $price_html = $new_price_regular . $new_price_sale;
182
-
183
- return $price_html;
184
  }
185
 
186
  public function get_price_html_from_to( $from, $to, $show_labels = true ) {
164
 
165
  preg_match( "/<del>(.*?)<\\/del>/si", $price_html, $match_regular );
166
  preg_match( "/<ins>(.*?)<\\/ins>/si", $price_html, $match_sale );
167
+ preg_match( "/<small .*>(.*?)<\\/small>/si", $price_html, $match_suffix );
168
 
169
  if ( empty( $match_sale ) || empty( $match_regular ) ) {
170
  return $price_html;
171
  }
172
 
173
+ $new_price_regular = $match_regular[0];
174
+ $new_price_sale = $match_sale[0];
175
+ $new_price_suffix = ( empty( $match_suffix ) ? '' : ' ' . $match_suffix[0] );
176
 
177
  if ( ! empty( $sale_label ) && isset( $match_regular[1] ) )
178
+ $new_price_regular = '<span class="wc-gzd-sale-price-label">' . $sale_label . '</span> ' . $match_regular[0];
179
 
180
  if ( ! empty( $sale_regular_label ) && isset( $match_sale[1] ) )
181
+ $new_price_sale = '<span class="wc-gzd-sale-price-label wc-gzd-sale-price-regular-label">' . $sale_regular_label . '</span> ' . $match_sale[0];
182
 
183
+ return apply_filters( 'woocommerce_gzd_product_sale_price_with_labels_html', $new_price_regular . ' ' . $new_price_sale . $new_price_suffix, $org_price_html, $this );
 
 
184
  }
185
 
186
  public function get_price_html_from_to( $from, $to, $show_labels = true ) {
includes/admin/class-wc-gzd-admin-welcome.php CHANGED
@@ -122,11 +122,17 @@ class WC_GZD_Admin_Welcome {
122
  <a href="<?php echo admin_url('admin.php?page=wc-settings&tab=germanized'); ?>" class="button button-primary">Einstellungen</a>
123
  <a href="https://vendidero.de/woocommerce-germanized#buy" target="_blank" class="button button-primary">Upgrade zur Pro Version</a>
124
  </p>
125
- <div class="changelog new-feature">
126
- <h3>WooCommerce 2.7 & neue Infopflichten am 01.02.17</h3>
127
- <p>Mit Version 1.8 ist Germanized bereits vorbereitet auf das bald anstehende Major Update von WooCommerce auf Version 2.7. Das Update wird viele Änderungen mit sich bringen, insbesondere bei der Datenstruktur. Dafür mussten auch in Germanized viele Anpassungen gemacht werden und vor allem Aufwand zur Gewährleistung der Rückwärtskompatibilität mit älteren WC Versionen betrieben werden.</p>
128
- <p>Zudem gibt es mit dem 01.02.17 neue Informationspflichten (s.h. <a href="http://shopbetreiber-blog.de/2017/01/13/streitschlichtung-neue-infopflichten-fuer-alle-online-haendler-ab-1-februar/" target="_blank">Trusted Shops</a>). Die nötigen Informationen werden in Form des Shortcodes [gzd_complaints] zum Impressum (und falls hinterlegt zu den AGB) hinzugefügt. Dafür wurden
129
- neue Optionen in den Einstellungen hinterlegt, da je nach Geschäftsmodell u.U. andere Informationen einzufügen sind. Die empfohlenen Mustertexte von Trusted Shops haben wir bereits eingearbeitet. Bitte kontrolliere deine <a href="<?php echo admin_url( 'admin.php?page=wc-settings&tab=germanized#woocommerce_gzd_alternative_complaints_text_none' ); ?>">Einstellungen</a>.</p>
 
 
 
 
 
 
130
  </div>
131
  <div class="changelog vendipro new-feature">
132
  <h3>Neu: Rechtliche Hinweistexte als PDF-Anhang <span class="wc-gzd-pro">pro</span></h3>
122
  <a href="<?php echo admin_url('admin.php?page=wc-settings&tab=germanized'); ?>" class="button button-primary">Einstellungen</a>
123
  <a href="https://vendidero.de/woocommerce-germanized#buy" target="_blank" class="button button-primary">Upgrade zur Pro Version</a>
124
  </p>
125
+ <div class="changelog vendipro new-feature">
126
+ <h3>Neu in 1.8.4: Versand an DHL Shops & Packstationen</h3>
127
+ <div class="left">
128
+ <p>
129
+ Germanized 1.8.4 ermöglicht es dir deinen Kunden den Versand an DHL Shops & Packstationen anzubieten. Dafür fügt Germanized eine Checkbox in der Versandadresse ein, die der Kunde anhaken kann. Anschließend wird die PostNummer und die Packstation abgefragt.
130
+ Zudem haben wir auch die DHL Standortsuche integriert, über die der Kunde eine Packstation in seiner Nähe finden kann - die Daten der Packstation werden automatisch als Versandresse übernommen. Aktiviere jetzt den Versand an DHL Packstationen bzw. Paketshops in den <a href="<?php echo admin_url( 'admin.php?page=wc-settings&tab=germanized&section=display#woocommerce_gzd_dhl_parcel_shops' ); ?>">Einstellungen</a>.
131
+ </p>
132
+ </div>
133
+ <div class="right">
134
+ <img src="<?php echo WC_germanized()->plugin_url();?>/assets/images/dhl-packstation.png" style="max-width: 600px; border: none" />
135
+ </div>
136
  </div>
137
  <div class="changelog vendipro new-feature">
138
  <h3>Neu: Rechtliche Hinweistexte als PDF-Anhang <span class="wc-gzd-pro">pro</span></h3>
includes/admin/class-wc-gzd-admin.php CHANGED
@@ -276,7 +276,7 @@ class WC_GZD_Admin {
276
 
277
  if ( isset( $_GET[ 'delete-version-cache' ] ) && isset( $_GET[ '_wpnonce' ] ) && check_admin_referer( 'wc-gzd-delete-version-cache' ) ) {
278
 
279
- WC_GZD_Dependencies::instance()->delete_cached_plugin_header_data();
280
 
281
  do_action( 'woocommerce_gzd_deleted_cached_plugin_header_data' );
282
  }
276
 
277
  if ( isset( $_GET[ 'delete-version-cache' ] ) && isset( $_GET[ '_wpnonce' ] ) && check_admin_referer( 'wc-gzd-delete-version-cache' ) ) {
278
 
279
+ wc_gzd_get_dependencies()->delete_cached_plugin_header_data();
280
 
281
  do_action( 'woocommerce_gzd_deleted_cached_plugin_header_data' );
282
  }
includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php CHANGED
@@ -111,7 +111,7 @@ class WC_Germanized_Meta_Box_Product_Data {
111
 
112
  $args[ 'id' ] = empty( $args[ 'id' ] ) ? $args[ 'name' ] : $args[ 'id' ];
113
 
114
- if ( WC_GZD_Dependencies::instance()->woocommerce_version_supports_crud() ) {
115
  ?>
116
  <select class="wc-product-search wc-gzd-delivery-time-search" style="<?php echo $args[ 'style' ]; ?>" id="<?php echo $args[ 'id' ]; ?>" name="<?php echo $args[ 'name' ]; ?>" data-minimum_input_length="1" data-allow_clear="true" data-placeholder="<?php echo $args[ 'placeholder' ]; ?>" data-action="woocommerce_gzd_json_search_delivery_time" data-multiple="false">
117
  <?php
111
 
112
  $args[ 'id' ] = empty( $args[ 'id' ] ) ? $args[ 'name' ] : $args[ 'id' ];
113
 
114
+ if ( wc_gzd_get_dependencies()->woocommerce_version_supports_crud() ) {
115
  ?>
116
  <select class="wc-product-search wc-gzd-delivery-time-search" style="<?php echo $args[ 'style' ]; ?>" id="<?php echo $args[ 'id' ]; ?>" name="<?php echo $args[ 'name' ]; ?>" data-minimum_input_length="1" data-allow_clear="true" data-placeholder="<?php echo $args[ 'placeholder' ]; ?>" data-action="woocommerce_gzd_json_search_delivery_time" data-multiple="false">
117
  <?php
includes/admin/settings/class-wc-gzd-settings-germanized.php CHANGED
@@ -887,6 +887,32 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
887
 
888
  array( 'title' => __( 'Checkout & Cart', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'checkout_options' ),
889
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
890
  array(
891
  'title' => __( 'Fallback Mode', 'woocommerce-germanized' ),
892
  'desc' => __( 'Enable to make sure default checkout template is not being overriden by theme.', 'woocommerce-germanized' ),
887
 
888
  array( 'title' => __( 'Checkout & Cart', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'checkout_options' ),
889
 
890
+ array(
891
+ 'title' => __( 'DHL Parcel Shops', 'woocommerce-germanized' ),
892
+ 'desc' => __( 'Allow customers to choose a DHL parcel shop or packing station as delivery address.', 'woocommerce-germanized' ),
893
+ 'id' => 'woocommerce_gzd_dhl_parcel_shops',
894
+ 'default' => 'no',
895
+ 'type' => 'checkbox',
896
+ 'desc_tip' => __( 'This option adds a checkbox to your checkout shipping fields which allows the customer to optionally choose a DHL packing station or parcel shop for delivery. A PostNumber is required.', 'woocommerce-germanized' ),
897
+ ),
898
+
899
+ array(
900
+ 'title' => __( 'Supported Countries', 'woocommerce-germanized' ),
901
+ 'id' => 'woocommerce_gzd_dhl_parcel_shop_supported_countries',
902
+ 'default' => array( 'DE', 'AT' ),
903
+ 'type' => 'multi_select_countries',
904
+ 'desc_tip' => __( 'Choose countries which support Parcel Shop delivery.', 'woocommerce-germanized' ),
905
+ ),
906
+
907
+ array(
908
+ 'title' => __( 'Parcel Shop Finder', 'woocommerce-germanized' ),
909
+ 'desc' => __( 'Enable DHL Parcel Shop Finder to let customers choose a parcel shop nearby.', 'woocommerce-germanized' ),
910
+ 'id' => 'woocommerce_gzd_dhl_parcel_shop_finder',
911
+ 'default' => 'no',
912
+ 'type' => 'checkbox',
913
+ 'desc_tip' => sprintf( __( 'You may enable this option to add a <a href="%s" target="_blank">Parcel Shop Finder</a> to your checkout. Adds an link next to the checkbox. The finder (DHL API) opens in an overlay and lets the customer find and choose a parcel shop or packing station nearby.', 'woocommerce-germanized' ), 'https://parcelshopfinder.dhlparcel.com/' ),
914
+ ),
915
+
916
  array(
917
  'title' => __( 'Fallback Mode', 'woocommerce-germanized' ),
918
  'desc' => __( 'Enable to make sure default checkout template is not being overriden by theme.', 'woocommerce-germanized' ),
includes/api/class-wc-gzd-rest-api.php CHANGED
@@ -22,7 +22,7 @@ class WC_GZD_REST_API {
22
  }
23
 
24
  public function init() {
25
- if ( version_compare( WC_GZD_Dependencies::instance()->get_plugin_version( 'woocommerce' ), '2.6', '<' ) )
26
  return;
27
 
28
  $this->rest_api_includes();
22
  }
23
 
24
  public function init() {
25
+ if ( version_compare( wc_gzd_get_dependencies()->get_plugin_version( 'woocommerce' ), '2.6', '<' ) )
26
  return;
27
 
28
  $this->rest_api_includes();
includes/api/class-wc-gzd-rest-orders-controller.php CHANGED
@@ -42,6 +42,8 @@ class WC_GZD_REST_Orders_Controller {
42
 
43
  $response_order_data['billing']['title'] = wc_gzd_get_crud_data( $order, 'billing_title' );
44
  $response_order_data['shipping']['title'] = wc_gzd_get_crud_data( $order, 'shipping_title' );
 
 
45
  $response_order_data['parcel_delivery_opted_in'] = wc_gzd_get_crud_data( $order, 'parcel_delivery_opted_in' );
46
 
47
  $response->set_data( $response_order_data );
@@ -69,6 +71,17 @@ class WC_GZD_REST_Orders_Controller {
69
  update_post_meta( $post->ID, '_shipping_title', absint( $request['shipping']['title'] ) );
70
  }
71
 
 
 
 
 
 
 
 
 
 
 
 
72
  }
73
 
74
  /**
@@ -97,6 +110,18 @@ class WC_GZD_REST_Orders_Controller {
97
  'enum' => array( 1, 2 )
98
  );
99
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  $schema_properties['parcel_delivery_opted_in'] = array(
101
  'description' => __( 'Parcel Delivery Data Transfer', 'woocommerce-germanized' ),
102
  'type' => 'string',
42
 
43
  $response_order_data['billing']['title'] = wc_gzd_get_crud_data( $order, 'billing_title' );
44
  $response_order_data['shipping']['title'] = wc_gzd_get_crud_data( $order, 'shipping_title' );
45
+ $response_order_data['shipping']['parcelshop'] = (bool) wc_gzd_get_crud_data( $order, 'shipping_parcelshop' );
46
+ $response_order_data['shipping']['parcelshop_post_number'] = wc_gzd_get_crud_data( $order, 'shipping_parcelshop_post_number' );
47
  $response_order_data['parcel_delivery_opted_in'] = wc_gzd_get_crud_data( $order, 'parcel_delivery_opted_in' );
48
 
49
  $response->set_data( $response_order_data );
71
  update_post_meta( $post->ID, '_shipping_title', absint( $request['shipping']['title'] ) );
72
  }
73
 
74
+ if ( isset( $request['shipping']['parcelshop'] ) ) {
75
+ if ( (bool) $request['shipping']['parcelshop'] ) {
76
+ update_post_meta( $post->ID, '_shipping_parcelshop', 1 );
77
+ } else {
78
+ delete_post_meta( $post->ID, '_shipping_parcelshop' );
79
+ }
80
+ }
81
+
82
+ if ( isset( $request['shipping']['parcelshop_post_number'] ) ) {
83
+ update_post_meta( $post->ID, '_shipping_parcelshop_post_number', wc_clean( $request['shipping']['parcelshop_post_number'] ) );
84
+ }
85
  }
86
 
87
  /**
110
  'enum' => array( 1, 2 )
111
  );
112
 
113
+ $schema_properties['shipping']['properties']['parcelshop'] = array(
114
+ 'description' => __( 'Parcel Shop', 'woocommerce-germanized' ),
115
+ 'type' => 'boolean',
116
+ 'context' => array( 'view', 'edit' ),
117
+ );
118
+
119
+ $schema_properties['shipping']['properties']['parcelshop_post_number'] = array(
120
+ 'description' => __( 'Postnumber', 'woocommerce-germanized' ),
121
+ 'type' => 'string',
122
+ 'context' => array( 'view', 'edit' ),
123
+ );
124
+
125
  $schema_properties['parcel_delivery_opted_in'] = array(
126
  'description' => __( 'Parcel Delivery Data Transfer', 'woocommerce-germanized' ),
127
  'type' => 'string',
includes/class-wc-gzd-checkout.php CHANGED
@@ -33,13 +33,13 @@ class WC_GZD_Checkout {
33
 
34
  public function __construct() {
35
 
36
- add_action( 'init', array( $this, 'init_fields' ) );
37
  add_filter( 'woocommerce_billing_fields', array( $this, 'set_custom_fields' ), 0, 1 );
38
  add_filter( 'woocommerce_shipping_fields', array( $this, 'set_custom_fields_shipping' ), 0, 1 );
39
 
40
  // Add Fields to Order Edit Page
41
- add_filter( 'woocommerce_admin_billing_fields', array( $this, 'set_custom_fields_admin' ), 0, 1 );
42
- add_filter( 'woocommerce_admin_shipping_fields', array( $this, 'set_custom_fields_admin' ), 0, 1 );
43
 
44
  // Save Fields on order
45
  add_action( 'woocommerce_checkout_update_order_meta', array( $this, 'save_fields' ) );
@@ -48,13 +48,16 @@ class WC_GZD_Checkout {
48
  add_filter( 'woocommerce_order_formatted_billing_address', array( $this, 'set_formatted_billing_address' ), 0, 2 );
49
  add_filter( 'woocommerce_order_formatted_shipping_address', array( $this, 'set_formatted_shipping_address' ), 0, 2 );
50
  add_filter( 'woocommerce_formatted_address_replacements', array( $this, 'set_formatted_address' ), 0, 2 );
51
-
 
 
 
52
  // Add item desc to order
53
- if ( WC_GZD_Dependencies::instance()->woocommerce_version_supports_crud() ) {
54
  add_action( 'woocommerce_new_order_item', array( $this, 'set_order_item_meta_crud' ), 0, 3 );
55
  } else {
56
  add_action( 'woocommerce_order_add_product', array( $this, 'set_order_meta' ), 0, 5 );
57
- }
58
 
59
  add_filter( 'woocommerce_hidden_order_itemmeta', array( $this, 'set_order_meta_hidden' ), 0 );
60
 
@@ -86,6 +89,7 @@ class WC_GZD_Checkout {
86
 
87
  if ( wc_gzd_is_parcel_delivery_data_transfer_checkbox_enabled() )
88
  add_action( 'woocommerce_checkout_update_order_meta', array( $this, 'order_parcel_delivery_data_transfer' ), 10, 2 );
 
89
  }
90
 
91
  public function remove_cancel_button( $actions, $order ) {
@@ -259,8 +263,8 @@ class WC_GZD_Checkout {
259
  'before' => 'first_name',
260
  'type' => 'select',
261
  'options' => array( 1 => __( 'Mr.', 'woocommerce-germanized' ), 2 => __( 'Ms.', 'woocommerce-germanized' ) ),
262
- 'show' => false,
263
  'label' => __( 'Title', 'woocommerce-germanized' ),
 
264
  );
265
 
266
  }
@@ -275,6 +279,22 @@ class WC_GZD_Checkout {
275
  );
276
 
277
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
278
  }
279
 
280
  /**
@@ -386,6 +406,7 @@ class WC_GZD_Checkout {
386
 
387
  if ( wc_gzd_get_crud_data( $order, 'billing_title' ) )
388
  $fields[ 'title' ] = $this->get_customer_title( wc_gzd_get_crud_data( $order, 'billing_title' ) );
 
389
  return $fields;
390
  }
391
 
@@ -414,56 +435,99 @@ class WC_GZD_Checkout {
414
  }
415
 
416
  public function set_custom_fields( $fields = array(), $type = 'billing' ) {
417
- $new = array();
418
  if ( ! empty( $this->custom_fields ) ) {
 
419
  foreach ( $this->custom_fields as $key => $custom_field ) {
 
 
 
420
  if ( in_array( $type, $custom_field[ 'group' ] ) ) {
 
421
  if ( ! empty( $fields ) ) {
 
422
  foreach ( $fields as $name => $field ) {
423
- if ( $name == $type . '_' . $custom_field[ 'before' ] && ! isset( $custom_field[ 'override' ] ) )
 
424
  $new[ $type . '_' . $key ] = $custom_field;
 
 
425
  $new[ $name ] = $field;
426
- if ( $name == $type . '_' . $key && isset( $custom_field[ 'override' ] ) )
 
427
  $new[ $name ] = array_merge( $field, $custom_field );
 
428
  }
429
  }
430
  }
 
 
 
 
431
  }
432
  }
433
- return ( ! empty( $new ) ? $new : $fields );
 
434
  }
435
 
436
  public function set_custom_fields_shipping( $fields ) {
437
  return $this->set_custom_fields( $fields, 'shipping' );
438
  }
439
 
440
- public function set_custom_fields_admin( $fields = array() ) {
441
  $new = array();
 
442
  if ( ! empty( $this->custom_fields_admin ) ) {
 
443
  foreach ( $this->custom_fields_admin as $key => $custom_field ) {
 
 
 
 
 
 
444
  if ( ! empty( $fields ) ) {
 
445
  foreach ( $fields as $name => $field ) {
446
  if ( $name == $custom_field[ 'before' ] && ! isset( $custom_field[ 'override' ] ) )
447
  $new[ $key ] = $custom_field;
 
448
  $new[ $name ] = $field;
449
  }
450
  }
 
 
 
 
451
  }
452
  }
453
- return ( ! empty( $new ) ? $new : $fields );
 
 
 
 
 
 
 
 
 
454
  }
455
 
456
  public function save_fields( $order_id ) {
457
  $checkout = WC()->checkout();
 
458
  if ( ! empty( $this->custom_fields ) ) {
459
  foreach ( $this->custom_fields as $key => $custom_field ) {
460
  if ( ! empty( $custom_field[ 'group' ] ) && ! isset( $custom_field[ 'override' ] ) ) {
461
  foreach ( $custom_field[ 'group' ] as $group ) {
 
462
  $val = ( isset( $checkout->posted[ $group . '_' . $key ] ) ? $checkout->posted[ $group . '_' . $key ] : '' );
 
463
  if ( $group == 'shipping' || $group == 'billing' )
464
  $val = $checkout->get_posted_address_data( $key, $group );
 
465
  if ( ! empty( $val ) )
466
- update_post_meta( $order_id, '_' . $group . '_' . $key, sanitize_text_field( $val ) );
467
  }
468
  }
469
  }
33
 
34
  public function __construct() {
35
 
36
+ add_action( 'init', array( $this, 'init_fields' ), 30 );
37
  add_filter( 'woocommerce_billing_fields', array( $this, 'set_custom_fields' ), 0, 1 );
38
  add_filter( 'woocommerce_shipping_fields', array( $this, 'set_custom_fields_shipping' ), 0, 1 );
39
 
40
  // Add Fields to Order Edit Page
41
+ add_filter( 'woocommerce_admin_billing_fields', array( $this, 'set_custom_fields_admin_billing' ), 0, 1 );
42
+ add_filter( 'woocommerce_admin_shipping_fields', array( $this, 'set_custom_fields_admin_shipping' ), 0, 1 );
43
 
44
  // Save Fields on order
45
  add_action( 'woocommerce_checkout_update_order_meta', array( $this, 'save_fields' ) );
48
  add_filter( 'woocommerce_order_formatted_billing_address', array( $this, 'set_formatted_billing_address' ), 0, 2 );
49
  add_filter( 'woocommerce_order_formatted_shipping_address', array( $this, 'set_formatted_shipping_address' ), 0, 2 );
50
  add_filter( 'woocommerce_formatted_address_replacements', array( $this, 'set_formatted_address' ), 0, 2 );
51
+
52
+ // Support Checkout Field Managers (which are unable to map options to values)
53
+ add_filter( 'woocommerce_gzd_custom_title_field_value', array( $this, 'set_title_field_mapping_editors' ), 10, 1 );
54
+
55
  // Add item desc to order
56
+ if ( wc_gzd_get_dependencies()->woocommerce_version_supports_crud() ) {
57
  add_action( 'woocommerce_new_order_item', array( $this, 'set_order_item_meta_crud' ), 0, 3 );
58
  } else {
59
  add_action( 'woocommerce_order_add_product', array( $this, 'set_order_meta' ), 0, 5 );
60
+ }
61
 
62
  add_filter( 'woocommerce_hidden_order_itemmeta', array( $this, 'set_order_meta_hidden' ), 0 );
63
 
89
 
90
  if ( wc_gzd_is_parcel_delivery_data_transfer_checkbox_enabled() )
91
  add_action( 'woocommerce_checkout_update_order_meta', array( $this, 'order_parcel_delivery_data_transfer' ), 10, 2 );
92
+
93
  }
94
 
95
  public function remove_cancel_button( $actions, $order ) {
263
  'before' => 'first_name',
264
  'type' => 'select',
265
  'options' => array( 1 => __( 'Mr.', 'woocommerce-germanized' ), 2 => __( 'Ms.', 'woocommerce-germanized' ) ),
 
266
  'label' => __( 'Title', 'woocommerce-germanized' ),
267
+ 'show' => false,
268
  );
269
 
270
  }
279
  );
280
 
281
  }
282
+
283
+ $this->custom_fields_admin = apply_filters( 'woocommerce_gzd_custom_checkout_admin_fields', $this->custom_fields_admin, $this );
284
+ $this->custom_fields = apply_filters( 'woocommerce_gzd_custom_checkout_fields', $this->custom_fields, $this );
285
+ }
286
+
287
+ public function set_title_field_mapping_editors( $val ) {
288
+
289
+ $values = array(
290
+ __( 'Mr.', 'woocommerce-germanized' ) => 1,
291
+ __( 'Ms.', 'woocommerce-germanized' ) => 2,
292
+ );
293
+
294
+ if ( isset( $values[ $val ] ) )
295
+ return $values[ $val ];
296
+
297
+ return $val;
298
  }
299
 
300
  /**
406
 
407
  if ( wc_gzd_get_crud_data( $order, 'billing_title' ) )
408
  $fields[ 'title' ] = $this->get_customer_title( wc_gzd_get_crud_data( $order, 'billing_title' ) );
409
+
410
  return $fields;
411
  }
412
 
435
  }
436
 
437
  public function set_custom_fields( $fields = array(), $type = 'billing' ) {
438
+
439
  if ( ! empty( $this->custom_fields ) ) {
440
+
441
  foreach ( $this->custom_fields as $key => $custom_field ) {
442
+
443
+ $new = array();
444
+
445
  if ( in_array( $type, $custom_field[ 'group' ] ) ) {
446
+
447
  if ( ! empty( $fields ) ) {
448
+
449
  foreach ( $fields as $name => $field ) {
450
+
451
+ if ( $name == $type . '_' . $custom_field[ 'before' ] && ! isset( $custom_field[ 'override' ] ) ) {
452
  $new[ $type . '_' . $key ] = $custom_field;
453
+ }
454
+
455
  $new[ $name ] = $field;
456
+
457
+ if ( $name == $type . '_' . $key && isset( $custom_field[ 'override' ] ) ) {
458
  $new[ $name ] = array_merge( $field, $custom_field );
459
+ }
460
  }
461
  }
462
  }
463
+
464
+ if ( ! empty( $new ) ) {
465
+ $fields = $new;
466
+ }
467
  }
468
  }
469
+
470
+ return $fields;
471
  }
472
 
473
  public function set_custom_fields_shipping( $fields ) {
474
  return $this->set_custom_fields( $fields, 'shipping' );
475
  }
476
 
477
+ public function set_custom_fields_admin( $fields = array(), $type = 'billing' ) {
478
  $new = array();
479
+
480
  if ( ! empty( $this->custom_fields_admin ) ) {
481
+
482
  foreach ( $this->custom_fields_admin as $key => $custom_field ) {
483
+
484
+ $new = array();
485
+
486
+ if ( isset( $custom_field[ 'address_type' ] ) && $custom_field[ 'address_type' ] !== $type )
487
+ continue;
488
+
489
  if ( ! empty( $fields ) ) {
490
+
491
  foreach ( $fields as $name => $field ) {
492
  if ( $name == $custom_field[ 'before' ] && ! isset( $custom_field[ 'override' ] ) )
493
  $new[ $key ] = $custom_field;
494
+
495
  $new[ $name ] = $field;
496
  }
497
  }
498
+
499
+ if ( ! empty( $new ) ) {
500
+ $fields = $new;
501
+ }
502
  }
503
  }
504
+
505
+ return $fields;
506
+ }
507
+
508
+ public function set_custom_fields_admin_billing( $fields = array() ) {
509
+ return $this->set_custom_fields_admin( $fields, 'billing' );
510
+ }
511
+
512
+ public function set_custom_fields_admin_shipping( $fields = array() ) {
513
+ return $this->set_custom_fields_admin( $fields, 'shipping' );
514
  }
515
 
516
  public function save_fields( $order_id ) {
517
  $checkout = WC()->checkout();
518
+
519
  if ( ! empty( $this->custom_fields ) ) {
520
  foreach ( $this->custom_fields as $key => $custom_field ) {
521
  if ( ! empty( $custom_field[ 'group' ] ) && ! isset( $custom_field[ 'override' ] ) ) {
522
  foreach ( $custom_field[ 'group' ] as $group ) {
523
+
524
  $val = ( isset( $checkout->posted[ $group . '_' . $key ] ) ? $checkout->posted[ $group . '_' . $key ] : '' );
525
+
526
  if ( $group == 'shipping' || $group == 'billing' )
527
  $val = $checkout->get_posted_address_data( $key, $group );
528
+
529
  if ( ! empty( $val ) )
530
+ update_post_meta( $order_id, '_' . $group . '_' . $key, apply_filters( 'woocommerce_gzd_custom_' . $key . '_field_value', sanitize_text_field( $val ) ) );
531
  }
532
  }
533
  }
includes/class-wc-gzd-dhl-parcel-shops.php ADDED
@@ -0,0 +1,261 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) )
4
+ exit;
5
+
6
+ class WC_GZD_DHL_Parcel_Shops {
7
+
8
+ /**
9
+ * Single instance of WC_GZD_DHL_Parcel_Shops Class
10
+ *
11
+ * @var object
12
+ */
13
+ protected static $_instance = null;
14
+
15
+ public static function instance( $plugin = null ) {
16
+ if ( is_null( self::$_instance ) ) {
17
+ self::$_instance = new self( $plugin );
18
+ }
19
+
20
+ return self::$_instance;
21
+ }
22
+
23
+ public function __construct() {
24
+
25
+ $this->address_hooks();
26
+
27
+ if ( $this->is_enabled() ) {
28
+
29
+ // Register fields before WC_GZD_Checkout is loaded
30
+ add_filter( 'woocommerce_gzd_custom_checkout_fields', array( $this, 'init_fields' ), 10, 1 );
31
+ add_filter( 'woocommerce_gzd_custom_checkout_admin_fields', array( $this, 'init_admin_fields' ), 10, 1 );
32
+
33
+ add_action( 'woocommerce_gzd_registered_scripts', array( $this, 'load_scripts' ), 10, 3 );
34
+ add_action( 'woocommerce_gzd_localized_scripts', array( $this, 'localize_scripts' ), 10, 1 );
35
+
36
+ add_action( 'woocommerce_checkout_process', array( $this, 'manipulate_checkout_fields' ), 10 );
37
+ add_action( 'woocommerce_after_checkout_validation', array( $this, 'validate_fields' ), 10, 1 );
38
+
39
+ // Customer fields
40
+ add_filter( 'woocommerce_customer_meta_fields', array( $this, 'init_profile_fields' ), 10, 1 );
41
+
42
+ if ( $this->is_finder_enabled() ) {
43
+ // Add Markup
44
+ add_filter( 'woocommerce_form_field_checkbox', array( $this, 'add_button_markup' ), 10, 4 );
45
+ add_action( 'wp_footer', array( $this, 'add_overlay_markup' ), 50 );
46
+ }
47
+ }
48
+ }
49
+
50
+ public function address_hooks() {
51
+ add_filter( 'woocommerce_order_formatted_shipping_address', array( $this, 'set_formatted_shipping_address' ), 20, 2 );
52
+ add_filter( 'woocommerce_order_formatted_billing_address', array( $this, 'set_formatted_billing_address' ), 20, 2 );
53
+ add_filter( 'woocommerce_formatted_address_replacements', array( $this, 'set_formatted_address' ), 20, 2 );
54
+ add_filter( 'woocommerce_localisation_address_formats', array( $this, 'set_address_format' ), 20 );
55
+ }
56
+
57
+ public function set_address_format( $formats ) {
58
+
59
+ foreach( $this->get_supported_countries() as $country ) {
60
+ $format = $formats[ $country ];
61
+ $format = str_replace( "{name}", "{name}\n{parcelshop_post_number}", $format );
62
+ $formats[ $country ] = $format;
63
+ }
64
+
65
+ return $formats;
66
+ }
67
+
68
+ public function set_formatted_shipping_address( $fields = array(), $order ) {
69
+
70
+ $fields[ 'parcelshop_post_number' ] = '';
71
+
72
+ if ( wc_gzd_get_crud_data( $order, 'shipping_parcelshop' ) ) {
73
+ $fields[ 'parcelshop_post_number' ] = wc_gzd_get_crud_data( $order, 'shipping_parcelshop_post_number' );
74
+ }
75
+
76
+ return $fields;
77
+ }
78
+
79
+ public function set_formatted_billing_address( $fields = array(), $order ) {
80
+
81
+ $fields[ 'parcelshop_post_number' ] = '';
82
+
83
+ return $fields;
84
+ }
85
+
86
+ public function set_formatted_address( $placeholder, $args ) {
87
+ if ( isset( $args[ 'parcelshop_post_number' ] ) ) {
88
+ $placeholder[ '{parcelshop_post_number}' ] = $args[ 'parcelshop_post_number' ];
89
+ $placeholder[ '{parcelshop_post_number_upper}' ] = strtoupper( $args[ 'parcelshop_post_number' ] );
90
+ }
91
+ return $placeholder;
92
+ }
93
+
94
+ public function init_fields( $fields ) {
95
+
96
+ $fields[ 'parcelshop' ] = array(
97
+ 'type' => 'checkbox',
98
+ 'required' => false,
99
+ 'label' => __( 'Send to DHL Parcel Shop?', 'woocommerce-germanized' ),
100
+ 'before' => 'address_1',
101
+ 'group' => array( 'shipping' ),
102
+ 'class' => array( 'form-row-wide', 'first-check' ),
103
+ );
104
+
105
+ $fields[ 'parcelshop_post_number' ] = array(
106
+ 'type' => 'text',
107
+ 'required' => true,
108
+ 'label' => __( 'Postnumber', 'woocommerce-germanized' ),
109
+ 'before' => 'address_1',
110
+ 'group' => array( 'shipping' ),
111
+ 'class' => array( 'form-row-wide' ),
112
+ );
113
+
114
+ return $fields;
115
+ }
116
+
117
+ public function init_profile_fields( $fields ) {
118
+
119
+ $fields[ 'shipping' ][ 'fields' ][ 'shipping_parcelshop' ] = array(
120
+ 'label' => __( 'DHL Parcel Shop?', 'woocommerce-germanized' ),
121
+ 'type' => 'select',
122
+ 'options' => array( 0 => __( 'No', 'woocommerce-germanized' ), 1 => __( 'Yes', 'woocommerce-germanized' ) ),
123
+ 'description' => __( 'Select whether delivery to parcel shop should be enabled.', 'woocommerce-germanized' ),
124
+ );
125
+
126
+ $fields[ 'shipping' ][ 'fields' ][ 'shipping_parcelshop_post_number' ] = array(
127
+ 'label' => __( 'Postnumber', 'woocommerce-germanized' ),
128
+ 'type' => 'text',
129
+ 'description' => __( 'In case delivery to parcel shop is enabled please fill in the corresponding DHL post number.', 'woocommerce-germanized' ),
130
+ );
131
+
132
+ return $fields;
133
+
134
+ }
135
+
136
+
137
+ public function init_admin_fields( $fields ) {
138
+
139
+ $fields[ 'parcelshop_post_number' ] = array(
140
+ 'type' => 'text',
141
+ 'label' => __( 'Postnumber', 'woocommerce-germanized' ),
142
+ 'before' => 'address_1',
143
+ 'address_type' => 'shipping',
144
+ 'show' => false,
145
+ );
146
+
147
+ return $fields;
148
+ }
149
+
150
+ public function is_enabled() {
151
+ return ( get_option( 'woocommerce_gzd_dhl_parcel_shops' ) === 'yes' );
152
+ }
153
+
154
+ public function is_finder_enabled() {
155
+ return ( get_option( 'woocommerce_gzd_dhl_parcel_shop_finder' ) === 'yes' );
156
+ }
157
+
158
+ public function manipulate_checkout_fields() {
159
+ if ( ! WC()->checkout()->get_value( 'shipping_parcelshop' ) ) {
160
+ $fields = WC()->checkout()->checkout_fields;
161
+ $fields[ 'shipping' ][ 'shipping_parcelshop_post_number' ][ 'required' ] = false;
162
+ WC()->checkout()->checkout_fields = $fields;
163
+ } else {
164
+ $fields = WC()->checkout()->checkout_fields;
165
+ $fields[ 'shipping' ][ 'shipping_address_1' ][ 'label' ] = __( 'Parcel Shop', 'wooocommerce-germanized' );
166
+ WC()->checkout()->checkout_fields = $fields;
167
+ }
168
+ }
169
+
170
+ public function validate_fields( $data ) {
171
+
172
+ $required = array(
173
+ 'shipping_parcelshop_post_number',
174
+ 'shipping_parcelshop'
175
+ );
176
+
177
+ foreach( $required as $req ) {
178
+ if ( ! isset( $data[ $req ] ) || empty( $data[ $req ] ) )
179
+ return;
180
+ }
181
+
182
+ $is_valid_postnumber = (bool) preg_match( '/^([0-9]*)$/', $data[ 'shipping_parcelshop_post_number' ] );
183
+
184
+ if ( ! $is_valid_postnumber ) {
185
+ wc_add_notice( __( 'Your PostNumber should contain numbers only', 'woocommerce-germanized' ), 'error' );
186
+ }
187
+
188
+ $is_valid_shipping_country = in_array( $data[ 'shipping_country' ], $this->get_supported_countries() );
189
+
190
+ if ( ! $is_valid_shipping_country ) {
191
+ wc_add_notice( sprintf( __( 'Parcel Shop Delivery is only supported in: %s.', 'woocommerce-germanized' ), implode( ', ', $this->get_supported_countries( true ) ) ), 'error' );
192
+ }
193
+ }
194
+
195
+ public function load_scripts( $suffix, $frontend_script_path, $assets_path ) {
196
+
197
+ if ( is_checkout() ) {
198
+
199
+ wp_enqueue_script( 'wc-gzd-checkout-dhl-parcel-shops', $frontend_script_path . 'checkout-dhl-parcel-shops' . $suffix . '.js', array(
200
+ 'jquery',
201
+ 'wc-checkout'
202
+ ), WC_GERMANIZED_VERSION, true );
203
+
204
+ if ( $this->is_finder_enabled() ) {
205
+ wp_register_style( 'wc-gzd-checkout-dhl-parcel-shops-finder', $assets_path . 'css/woocommerce-gzd-dhl-parcel-shop-finder' . $suffix . '.css', '', WC_GERMANIZED_VERSION, 'all' );
206
+ wp_enqueue_style( 'wc-gzd-checkout-dhl-parcel-shops-finder' );
207
+ }
208
+ }
209
+ }
210
+
211
+ public function localize_scripts( $assets_path ) {
212
+
213
+ $lang = substr( get_bloginfo( "language" ), 0, 2 );
214
+
215
+ if ( wp_script_is( 'wc-gzd-checkout-dhl-parcel-shops' ) ) {
216
+ wp_localize_script( 'wc-gzd-checkout-dhl-parcel-shops', 'wc_gzd_dhl_parcel_shops_params', apply_filters( 'wc_gzd_dhl_parcel_shops_params', array(
217
+ 'address_field_title' => __( 'Parcel Shop', 'woocommerce-germanized' ),
218
+ 'address_field_placeholder' => __( 'Parcel Shop', 'woocommerce-germanized' ),
219
+ 'supported_countries' => $this->get_supported_countries(),
220
+ 'enable_finder' => $this->is_finder_enabled(),
221
+ 'button_wrapper' => '#wc-gzd-parcel-shop-finder-button-wrapper',
222
+ 'iframe_wrapper' => '#wc-gzd-parcel-shop-finder-iframe-wrapper',
223
+ 'iframe_src' => '//parcelshopfinder.dhlparcel.com/partnerservice.html?setLng=' . $lang,
224
+ 'shipping_country_error' => sprintf( __( 'Parcel Shop Delivery is only supported in: %s.', 'woocommerce-germanized' ), implode( ', ', $this->get_supported_countries( true ) ) ),
225
+ ) ) );
226
+ }
227
+ }
228
+
229
+ public function add_overlay_markup() {
230
+ if ( ! is_checkout() )
231
+ return;
232
+
233
+ wc_get_template( 'checkout/dhl-parcel-shop-finder.php' );
234
+ }
235
+
236
+ public function add_button_markup( $field, $key, $args, $value ) {
237
+
238
+ if ( 'shipping_parcelshop' === $key ) {
239
+ if ( substr( $field, -4 ) === "</p>" ) {
240
+ $field = substr( $field, 0, -4 );
241
+ $field .= apply_filters( 'woocommerce_gzd_dhl_parcel_finder_button_html', '<span id="wc-gzd-parcel-shop-finder-button-wrapper"><a class="wc-gzd-parcel-finder-open-button" href="#">' . __( 'Parcel Shop Finder', 'woocommerce-germanized' ) . '</a></span></p><div class="clear"></div>' );
242
+ }
243
+ }
244
+
245
+ return $field;
246
+ }
247
+
248
+ public function get_supported_countries( $as_names = false ) {
249
+
250
+ $codes = apply_filters( 'woocommerce_gzd_dhl_parcel_shops_countries', (array) get_option( 'woocommerce_gzd_dhl_parcel_shop_supported_countries', array( 'DE', 'AT' ) ) );
251
+
252
+ if ( $as_names ) {
253
+ $names = WC()->countries->get_countries();
254
+ return array_intersect_key( $names, array_flip( $codes ) );
255
+ } else {
256
+ return $codes;
257
+ }
258
+ }
259
+ }
260
+
261
+ WC_GZD_DHL_Parcel_Shops::instance();
includes/class-wc-gzd-emails.php CHANGED
@@ -39,10 +39,21 @@ class WC_GZD_Emails {
39
  // Change email template path if is germanized email template
40
  add_filter( 'woocommerce_template_directory', array( $this, 'set_woocommerce_template_dir' ), 10, 2 );
41
 
 
 
 
42
  if ( is_admin() )
43
  $this->admin_hooks();
44
  }
45
 
 
 
 
 
 
 
 
 
46
  private function set_mailer( $mailer = null ) {
47
  if ( $mailer )
48
  $this->mailer = $mailer;
@@ -315,7 +326,7 @@ class WC_GZD_Emails {
315
  }
316
 
317
  public function get_current_email_object() {
318
-
319
  if ( isset( $GLOBALS[ 'wc_gzd_template_name' ] ) && ! empty( $GLOBALS[ 'wc_gzd_template_name' ] ) ) {
320
 
321
  $object = $this->get_email_instance_by_tpl( $GLOBALS[ 'wc_gzd_template_name' ] );
@@ -338,21 +349,30 @@ class WC_GZD_Emails {
338
  $this->set_mailer();
339
 
340
  $found_mails = array();
 
341
 
342
  foreach ( $tpls as $tpl ) {
343
 
344
  $tpl = apply_filters( 'woocommerce_germanized_email_template_name', str_replace( array( 'admin-', '-' ), array( '', '_' ), basename( $tpl, '.php' ) ), $tpl );
345
- $mails = $this->mailer->get_emails();
346
 
347
  if ( ! empty( $mails ) ) {
 
348
  foreach ( $mails as $mail ) {
349
- if ( is_object( $mail ) && $mail->id == $tpl )
350
- array_push( $found_mails, $mail );
 
 
 
 
 
351
  }
352
  }
353
  }
354
- if ( ! empty( $found_mails ) )
 
355
  return $found_mails[ sizeof( $found_mails ) - 1 ];
 
 
356
  return null;
357
  }
358
 
39
  // Change email template path if is germanized email template
40
  add_filter( 'woocommerce_template_directory', array( $this, 'set_woocommerce_template_dir' ), 10, 2 );
41
 
42
+ // Map partially refunded order mail template to correct email instance
43
+ add_filter( 'woocommerce_gzd_email_template_id_comparison', array( $this, 'check_for_partial_refund_mail' ), 10, 3 );
44
+
45
  if ( is_admin() )
46
  $this->admin_hooks();
47
  }
48
 
49
+ public function check_for_partial_refund_mail( $result, $mail_id, $tpl ) {
50
+
51
+ if ( $mail_id === 'customer_partially_refunded_order' && $tpl === 'customer_refunded_order' )
52
+ return true;
53
+
54
+ return $result;
55
+ }
56
+
57
  private function set_mailer( $mailer = null ) {
58
  if ( $mailer )
59
  $this->mailer = $mailer;
326
  }
327
 
328
  public function get_current_email_object() {
329
+
330
  if ( isset( $GLOBALS[ 'wc_gzd_template_name' ] ) && ! empty( $GLOBALS[ 'wc_gzd_template_name' ] ) ) {
331
 
332
  $object = $this->get_email_instance_by_tpl( $GLOBALS[ 'wc_gzd_template_name' ] );
349
  $this->set_mailer();
350
 
351
  $found_mails = array();
352
+ $mails = $this->mailer->get_emails();
353
 
354
  foreach ( $tpls as $tpl ) {
355
 
356
  $tpl = apply_filters( 'woocommerce_germanized_email_template_name', str_replace( array( 'admin-', '-' ), array( '', '_' ), basename( $tpl, '.php' ) ), $tpl );
 
357
 
358
  if ( ! empty( $mails ) ) {
359
+
360
  foreach ( $mails as $mail ) {
361
+
362
+ if ( is_object( $mail ) ) {
363
+
364
+ if ( apply_filters( 'woocommerce_gzd_email_template_id_comparison', ( $mail->id === $tpl ), $mail->id, $tpl ) ) {
365
+ array_push( $found_mails, $mail );
366
+ }
367
+ }
368
  }
369
  }
370
  }
371
+
372
+ if ( ! empty( $found_mails ) ) {
373
  return $found_mails[ sizeof( $found_mails ) - 1 ];
374
+ }
375
+
376
  return null;
377
  }
378
 
includes/class-wc-gzd-hook-priorities.php CHANGED
@@ -78,10 +78,10 @@ class WC_GZD_Hook_Priorities {
78
  'single_small_business_info' => 30,
79
  'single_product_units' => 5,
80
  'loop_price_unit' => 10,
81
- 'loop_product_units' => 5,
82
  'loop_tax_info' => 6,
83
  'loop_shipping_costs_info' => 7,
84
  'loop_delivery_time_info' => 8,
 
85
  'cart_subtotal_unit_price' => 0,
86
  'cart_product_unit_price' => 0,
87
  'cart_product_units' => 10,
78
  'single_small_business_info' => 30,
79
  'single_product_units' => 5,
80
  'loop_price_unit' => 10,
 
81
  'loop_tax_info' => 6,
82
  'loop_shipping_costs_info' => 7,
83
  'loop_delivery_time_info' => 8,
84
+ 'loop_product_units' => 9,
85
  'cart_subtotal_unit_price' => 0,
86
  'cart_product_unit_price' => 0,
87
  'cart_product_units' => 10,
includes/class-wc-gzd-install.php CHANGED
@@ -118,7 +118,7 @@ class WC_GZD_Install {
118
 
119
  load_textdomain( 'woocommerce-germanized', $mofile );
120
 
121
- if ( ! WC_GZD_Dependencies::instance()->is_woocommerce_activated() ) {
122
  deactivate_plugins( WC_GERMANIZED_PLUGIN_FILE );
123
  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/' ) );
124
  }
@@ -307,16 +307,17 @@ class WC_GZD_Install {
307
  wp_schedule_event( time(), 'daily', 'woocommerce_gzd_ekomi' );
308
  }
309
 
310
- private static function create_units() {
311
- $units = include_once( WC_Germanized()->plugin_path() . '/i18n/units.php' );
312
  if ( ! empty( $units ) ) {
313
- foreach ( $units as $slug => $unit )
314
  wp_insert_term( $unit, 'product_unit', array( 'slug' => $slug ) );
 
315
  }
316
  }
317
 
318
- private static function create_labels() {
319
- $labels = include_once( WC_Germanized()->plugin_path() . '/i18n/labels.php' );
320
  if ( ! empty( $labels ) ) {
321
  foreach ( $labels as $slug => $unit )
322
  wp_insert_term( $unit, 'product_price_label', array( 'slug' => $slug ) );
118
 
119
  load_textdomain( 'woocommerce-germanized', $mofile );
120
 
121
+ if ( ! wc_gzd_get_dependencies()->is_woocommerce_activated() ) {
122
  deactivate_plugins( WC_GERMANIZED_PLUGIN_FILE );
123
  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/' ) );
124
  }
307
  wp_schedule_event( time(), 'daily', 'woocommerce_gzd_ekomi' );
308
  }
309
 
310
+ public static function create_units() {
311
+ $units = include( WC_Germanized()->plugin_path() . '/i18n/units.php' );
312
  if ( ! empty( $units ) ) {
313
+ foreach ( $units as $slug => $unit ) {
314
  wp_insert_term( $unit, 'product_unit', array( 'slug' => $slug ) );
315
+ }
316
  }
317
  }
318
 
319
+ public static function create_labels() {
320
+ $labels = include( WC_Germanized()->plugin_path() . '/i18n/labels.php' );
321
  if ( ! empty( $labels ) ) {
322
  foreach ( $labels as $slug => $unit )
323
  wp_insert_term( $unit, 'product_price_label', array( 'slug' => $slug ) );
includes/class-wc-gzd-product-variable.php CHANGED
@@ -84,6 +84,16 @@ class WC_GZD_Product_Variable extends WC_GZD_Product {
84
  return apply_filters( 'woocommerce_get_price_html', $price, $this );
85
  }
86
 
 
 
 
 
 
 
 
 
 
 
87
  /**
88
  * Returns the price in html format.
89
  *
@@ -104,7 +114,7 @@ class WC_GZD_Product_Variable extends WC_GZD_Product {
104
  $min_price = current( $prices['price'] );
105
  $max_price = end( $prices['price'] );
106
 
107
- if ( WC_GZD_Dependencies::instance()->woocommerce_version_supports_crud() ) {
108
 
109
  if ( $min_price !== $max_price ) {
110
  $price = apply_filters( 'woocommerce_gzd_variable_unit_price_html', wc_format_price_range( $min_price, $max_price ), $this );
84
  return apply_filters( 'woocommerce_get_price_html', $price, $this );
85
  }
86
 
87
+ public function get_price_html_from_to( $from, $to, $show_labels = true ) {
88
+
89
+ $sale_label = ( $show_labels ? $this->get_sale_price_label() : '' );
90
+ $sale_regular_label = ( $show_labels ? $this->get_sale_price_regular_label() : '' );
91
+
92
+ $price = ( ! empty( $sale_label ) ? '<span class="wc-gzd-sale-price-label">' . $sale_label . '</span>' : '' ) . ' <del>' . ( ( is_numeric( $from ) ) ? wc_price( $from ) : $from ) . '</del> ' . ( ! empty( $sale_regular_label ) ? '<span class="wc-gzd-sale-price-label wc-gzd-sale-price-regular-label">' . $sale_regular_label . '</span> ' : '' ) . '<ins>' . ( ( is_numeric( $to ) ) ? wc_price( $to ) : $to ) . '</ins>';
93
+
94
+ return apply_filters( 'woocommerce_germanized_get_price_html_from_to', $price, $from, $to, $this );
95
+ }
96
+
97
  /**
98
  * Returns the price in html format.
99
  *
114
  $min_price = current( $prices['price'] );
115
  $max_price = end( $prices['price'] );
116
 
117
+ if ( wc_gzd_get_dependencies()->woocommerce_version_supports_crud() ) {
118
 
119
  if ( $min_price !== $max_price ) {
120
  $price = apply_filters( 'woocommerce_gzd_variable_unit_price_html', wc_format_price_range( $min_price, $max_price ), $this );
includes/class-wc-gzd-virtual-vat-helper.php CHANGED
@@ -30,7 +30,9 @@ class WC_GZD_Virtual_VAT_Helper {
30
 
31
  $location = WC_Tax::get_tax_location( $tax_class );
32
 
33
- if ( in_array( $tax_class, array( 'virtual-rate', 'virtual-reduced-rate' ) ) && isset( $location[0] ) && sizeof( $location ) === 4 && $location[0] !== WC()->countries->get_base_country() ) {
 
 
34
 
35
  list( $country, $state, $postcode, $city ) = $location;
36
 
@@ -41,11 +43,9 @@ class WC_GZD_Virtual_VAT_Helper {
41
  'city' => $city,
42
  'tax_class' => $tax_class
43
  ) );
44
-
45
  }
46
 
47
  return $rates;
48
-
49
  }
50
 
51
  }
30
 
31
  $location = WC_Tax::get_tax_location( $tax_class );
32
 
33
+ $virtual_vat_applicable = in_array( $tax_class, array( 'virtual-rate', 'virtual-reduced-rate' ) ) && isset( $location[0] ) && sizeof( $location ) === 4 && $location[0] !== WC()->countries->get_base_country();
34
+
35
+ if ( apply_filters( 'woocommerce_gzd_force_tax_location_vat_base_rates', $virtual_vat_applicable, $tax_class, $location ) ) {
36
 
37
  list( $country, $state, $postcode, $city ) = $location;
38
 
43
  'city' => $city,
44
  'tax_class' => $tax_class
45
  ) );
 
46
  }
47
 
48
  return $rates;
 
49
  }
50
 
51
  }
includes/compatibility/class-wc-gzd-compatibility-wpml.php CHANGED
@@ -21,7 +21,7 @@ class WC_GZD_Compatibility_Wpml extends WC_GZD_Compatibility {
21
  }
22
 
23
  public function is_activated() {
24
- return parent::is_activated() && WC_GZD_Dependencies::instance()->is_plugin_activated( 'woocommerce-multilingual/wpml-woocommerce.php' );
25
  }
26
 
27
  public function load() {
21
  }
22
 
23
  public function is_activated() {
24
+ return parent::is_activated() && wc_gzd_get_dependencies()->is_plugin_activated( 'woocommerce-multilingual/wpml-woocommerce.php' );
25
  }
26
 
27
  public function load() {
includes/gateways/direct-debit/libraries/php-sepa-xml/.travis.yml DELETED
@@ -1,14 +0,0 @@
1
- language: php
2
-
3
- php:
4
- - 5.3
5
- - 5.4
6
- - 5.5
7
- - 5.6
8
- - 7.0
9
-
10
- before_script:
11
- - composer install
12
-
13
- script:
14
- - ./bin/phpunit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/updates/woocommerce-gzd-update-1.8.0.php CHANGED
@@ -1,5 +1,10 @@
1
  <?php
2
 
 
 
 
 
 
3
  // Insert complaints shortcode in terms (if existent)
4
  $terms = wc_get_page_id( 'terms' );
5
 
1
  <?php
2
 
3
+ // Get all variable products
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ exit;
6
+ }
7
+
8
  // Insert complaints shortcode in terms (if existent)
9
  $terms = wc_get_page_id( 'terms' );
10
 
includes/wc-gzd-cart-functions.php CHANGED
@@ -369,7 +369,11 @@ function wc_gzd_get_legal_text_service_email_notice() {
369
  return $text;
370
  }
371
 
372
- function wc_gzd_get_chosen_shipping_rates() {
 
 
 
 
373
 
374
  $packages = WC()->shipping->get_packages();
375
  $shipping_methods = (array) WC()->session->get( 'chosen_shipping_methods' );
@@ -377,7 +381,11 @@ function wc_gzd_get_chosen_shipping_rates() {
377
 
378
  foreach ( $packages as $i => $package ) {
379
  if ( isset( $shipping_methods[ $i ] ) && isset( $package['rates'][ $shipping_methods[ $i ] ] ) ) {
380
- array_push( $rates, $package['rates'][ $shipping_methods[ $i ] ] );
 
 
 
 
381
  }
382
  }
383
 
369
  return $text;
370
  }
371
 
372
+ function wc_gzd_get_chosen_shipping_rates( $args = array() ) {
373
+
374
+ $args = wp_parse_args( $args, array(
375
+ 'value' => '',
376
+ ) );
377
 
378
  $packages = WC()->shipping->get_packages();
379
  $shipping_methods = (array) WC()->session->get( 'chosen_shipping_methods' );
381
 
382
  foreach ( $packages as $i => $package ) {
383
  if ( isset( $shipping_methods[ $i ] ) && isset( $package['rates'][ $shipping_methods[ $i ] ] ) ) {
384
+ if ( empty( $args[ 'value' ] ) ) {
385
+ array_push( $rates, $package['rates'][ $shipping_methods[ $i ] ] );
386
+ } else {
387
+ array_push( $rates, $package['rates'][ $shipping_methods[ $i ] ]->{$args['value']} );
388
+ }
389
  }
390
  }
391
 
includes/wc-gzd-core-functions.php CHANGED
@@ -12,6 +12,10 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
12
 
13
  include( 'wc-gzd-product-functions.php' );
14
 
 
 
 
 
15
  function wc_gzd_send_instant_order_confirmation() {
16
  return ( apply_filters( 'woocommerce_gzd_instant_order_confirmation', true ) && ( 'yes' !== get_option( 'woocommerce_gzd_disable_instant_order_confirmation' ) ) );
17
  }
12
 
13
  include( 'wc-gzd-product-functions.php' );
14
 
15
+ function wc_gzd_get_dependencies( $instance = null ) {
16
+ return apply_filters( 'woocommerce_gzd_dependencies_instance', WC_GZD_Dependencies::instance( $instance ) );
17
+ }
18
+
19
  function wc_gzd_send_instant_order_confirmation() {
20
  return ( apply_filters( 'woocommerce_gzd_instant_order_confirmation', true ) && ( 'yes' !== get_option( 'woocommerce_gzd_disable_instant_order_confirmation' ) ) );
21
  }
includes/wc-gzd-legacy-functions.php CHANGED
@@ -21,9 +21,9 @@ function wc_gzd_get_crud_data( $object, $key ) {
21
  $getter = substr( $key, 0, 3 ) === "get" ? $key : "get_$key";
22
  $key = substr( $key, 0, 3 ) === "get" ? substr( $key, 3 ) : $key;
23
 
24
- if ( 'id' === $key && is_callable( array( $object, 'is_type' ) ) && $object->is_type( 'variation' ) && ! WC_GZD_Dependencies::instance()->woocommerce_version_supports_crud() ) {
25
  $key = 'variation_id';
26
- } else if ( 'parent' === $key && is_callable( array( $object, 'is_type' ) ) && $object->is_type( 'variation' ) && ! WC_GZD_Dependencies::instance()->woocommerce_version_supports_crud() ) {
27
  // Set getter to parent so that it is not being used for pre 2.7
28
  $key = 'id';
29
  $getter = 'parent';
@@ -46,7 +46,7 @@ function wc_gzd_get_crud_data( $object, $key ) {
46
  if ( $reflection->isPublic() ) {
47
  $value = $object->{$getter}();
48
  }
49
- } else if ( WC_GZD_Dependencies::instance()->woocommerce_version_supports_crud() ) {
50
  if ( substr( $key, 0, 1 ) !== '_' )
51
  $key = '_' . $key;
52
 
@@ -78,19 +78,19 @@ function wc_gzd_get_price_excluding_tax( $product, $args = array() ) {
78
  }
79
 
80
  function wc_gzd_get_variation( $parent, $variation ) {
81
- if ( WC_GZD_Dependencies::instance()->woocommerce_version_supports_crud() )
82
  return wc_get_product( $variation );
83
  return $parent->get_child( $variation );
84
  }
85
 
86
  function wc_gzd_get_order_currency( $order ) {
87
- if ( WC_GZD_Dependencies::instance()->woocommerce_version_supports_crud() )
88
  return $order->get_currency();
89
  return $order->get_order_currency();
90
  }
91
 
92
  function wc_gzd_reduce_order_stock( $order_id ) {
93
- if ( WC_GZD_Dependencies::instance()->woocommerce_version_supports_crud() ) {
94
  wc_reduce_stock_levels($order_id);
95
  } else {
96
  $order = wc_get_order( $order_id );
21
  $getter = substr( $key, 0, 3 ) === "get" ? $key : "get_$key";
22
  $key = substr( $key, 0, 3 ) === "get" ? substr( $key, 3 ) : $key;
23
 
24
+ if ( 'id' === $key && is_callable( array( $object, 'is_type' ) ) && $object->is_type( 'variation' ) && ! wc_gzd_get_dependencies()->woocommerce_version_supports_crud() ) {
25
  $key = 'variation_id';
26
+ } else if ( 'parent' === $key && is_callable( array( $object, 'is_type' ) ) && $object->is_type( 'variation' ) && ! wc_gzd_get_dependencies()->woocommerce_version_supports_crud() ) {
27
  // Set getter to parent so that it is not being used for pre 2.7
28
  $key = 'id';
29
  $getter = 'parent';
46
  if ( $reflection->isPublic() ) {
47
  $value = $object->{$getter}();
48
  }
49
+ } else if ( wc_gzd_get_dependencies()->woocommerce_version_supports_crud() ) {
50
  if ( substr( $key, 0, 1 ) !== '_' )
51
  $key = '_' . $key;
52
 
78
  }
79
 
80
  function wc_gzd_get_variation( $parent, $variation ) {
81
+ if ( wc_gzd_get_dependencies()->woocommerce_version_supports_crud() )
82
  return wc_get_product( $variation );
83
  return $parent->get_child( $variation );
84
  }
85
 
86
  function wc_gzd_get_order_currency( $order ) {
87
+ if ( wc_gzd_get_dependencies()->woocommerce_version_supports_crud() )
88
  return $order->get_currency();
89
  return $order->get_order_currency();
90
  }
91
 
92
  function wc_gzd_reduce_order_stock( $order_id ) {
93
+ if ( wc_gzd_get_dependencies()->woocommerce_version_supports_crud() ) {
94
  wc_reduce_stock_levels($order_id);
95
  } else {
96
  $order = wc_get_order( $order_id );
includes/wc-gzd-template-functions.php CHANGED
@@ -268,7 +268,7 @@ if ( ! function_exists( 'woocommerce_gzd_checkout_validation' ) ) {
268
  if ( get_option( 'woocommerce_gzd_checkout_legal_service_checkbox' ) === 'yes' && $is_service && ! isset( $_POST[ 'service-revocate' ] ) )
269
  wc_add_notice( wc_gzd_get_legal_text_service_error(), 'error' );
270
 
271
- if ( ( wc_gzd_is_parcel_delivery_data_transfer_checkbox_enabled() && get_option( 'woocommerce_gzd_checkout_legal_parcel_delivery_checkbox_required' ) === 'yes' ) && ! isset( $_POST[ 'parcel-delivery' ] ) )
272
  wc_add_notice( __( 'Please accept our parcel delivery agreement', 'woocommerce-germanized' ), 'error' );
273
  }
274
  }
268
  if ( get_option( 'woocommerce_gzd_checkout_legal_service_checkbox' ) === 'yes' && $is_service && ! isset( $_POST[ 'service-revocate' ] ) )
269
  wc_add_notice( wc_gzd_get_legal_text_service_error(), 'error' );
270
 
271
+ if ( ( wc_gzd_is_parcel_delivery_data_transfer_checkbox_enabled( wc_gzd_get_chosen_shipping_rates( array( 'value' => 'method_id' ) ) ) && get_option( 'woocommerce_gzd_checkout_legal_parcel_delivery_checkbox_required' ) === 'yes' ) && ! isset( $_POST[ 'parcel-delivery' ] ) )
272
  wc_add_notice( __( 'Please accept our parcel delivery agreement', 'woocommerce-germanized' ), 'error' );
273
  }
274
  }
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: vendidero
3
  Tags: woocommerce, german market, german, germany, deutsch, deutschland, de, de_DE, shop, commerce, e-commerce, ecommerce, woothemes, sepa, invoice
4
  Requires at least: 3.8
5
  Tested up to: 4.7
6
- Stable tag: 1.8.3
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
@@ -39,6 +39,7 @@ Furthermore we have customized the checkout to make your WooCommerce Shop meet t
39
  * Payment Gateway Fees
40
  * Online Revocation Form
41
  * Sale Price Labels
 
42
 
43
  = Certified by Trusted Shops =
44
  WooCommerce Germanized has been approved by Trusted Shops and therefor offers best technical conditions to operate a legally certain Online Shop in Germany.
@@ -88,6 +89,10 @@ Starting with version 1.6 one may deactivate the checkout for inactive customers
88
  By default WooCommerce does not offer a distinction between receiving and confirming the order. WooCommerce Germanized Pro offers a feature to manually examine orders before confirming them to the customer.
89
  Shop managers may check order details and then manually confirm the order through a Button in the WooCommerce Backend.
90
 
 
 
 
 
91
  = eKomi Integration =
92
  Shop managers who are using eKomi as a Review Management Service may easily integrate it's features within WooCommerce.
93
  Easily set up eKomi by adapting a few Settings within WooCommerce Germanized.
@@ -98,7 +103,7 @@ Easily set up eKomi by adapting a few Settings within WooCommerce Germanized.
98
 
99
  * WordPress 3.8 or newer
100
  * WooCommerce 2.4 (newest version recommended)
101
- * PHP Version 5.2.4 or newer
102
 
103
  = Automatic Installation =
104
 
@@ -147,6 +152,11 @@ Professional Support via Ticket is being offered to [Professional Users](https:/
147
  Unfortunately not every Theme does implement WooCommerce in the way it's meant to be or differs from the original structure which leads to layout and/or compatibility
148
  issues. Out of that reason we have developed [VendiPro](https://vendidero.de/vendipro) which perfectly fits all Germanized Options and is optimized for German Market.
149
 
 
 
 
 
 
150
  = Want to file a Bug or improve Germanized? =
151
 
152
  Bug reports may be filed via our [GitHub repository](https://github.com/vendidero/woocommerce-germanized).
@@ -157,6 +167,13 @@ Bug reports may be filed via our [GitHub repository](https://github.com/vendider
157
 
158
  == Changelog ==
159
 
 
 
 
 
 
 
 
160
  = 1.8.3 =
161
  * Fix - Is empty check in 1.8.2
162
  * Fix - API free shipping
3
  Tags: woocommerce, german market, german, germany, deutsch, deutschland, de, de_DE, shop, commerce, e-commerce, ecommerce, woothemes, sepa, invoice
4
  Requires at least: 3.8
5
  Tested up to: 4.7
6
+ Stable tag: 1.8.4
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
39
  * Payment Gateway Fees
40
  * Online Revocation Form
41
  * Sale Price Labels
42
+ * Delivery to DHL Parcel Shops or Pick-Up Stations
43
 
44
  = Certified by Trusted Shops =
45
  WooCommerce Germanized has been approved by Trusted Shops and therefor offers best technical conditions to operate a legally certain Online Shop in Germany.
89
  By default WooCommerce does not offer a distinction between receiving and confirming the order. WooCommerce Germanized Pro offers a feature to manually examine orders before confirming them to the customer.
90
  Shop managers may check order details and then manually confirm the order through a Button in the WooCommerce Backend.
91
 
92
+ = Delivery to DHL Parcel Shops =
93
+ You may optionally choose to offer delivery to DHL parcel shops or pick-up stations. Customers may find a parcel shop nearby by embedding an overlay of the DHL search API.
94
+ On choosing a parcel shop within the overlay the corresponding data is automatically added to the checkout fields.
95
+
96
  = eKomi Integration =
97
  Shop managers who are using eKomi as a Review Management Service may easily integrate it's features within WooCommerce.
98
  Easily set up eKomi by adapting a few Settings within WooCommerce Germanized.
103
 
104
  * WordPress 3.8 or newer
105
  * WooCommerce 2.4 (newest version recommended)
106
+ * PHP Version 5.3 or newer
107
 
108
  = Automatic Installation =
109
 
152
  Unfortunately not every Theme does implement WooCommerce in the way it's meant to be or differs from the original structure which leads to layout and/or compatibility
153
  issues. Out of that reason we have developed [VendiPro](https://vendidero.de/vendipro) which perfectly fits all Germanized Options and is optimized for German Market.
154
 
155
+ = Email Attachments not showing in Order Confirmation Email =
156
+
157
+ In most times you have a wrong configuration within your Germanized Email settings. The order confirmation email sent to the customer after an order has been made is called "Processing Order". The email called "New Order" is the email
158
+ sent to the Administrator which serves as a notification only - so make sure you have "Processing Order" selected within the Germanized settings.
159
+
160
  = Want to file a Bug or improve Germanized? =
161
 
162
  Bug reports may be filed via our [GitHub repository](https://github.com/vendidero/woocommerce-germanized).
167
 
168
  == Changelog ==
169
 
170
+ = 1.8.4 =
171
+ * Feature - DHL Parcel Shop or Pick-Up Station delivery
172
+ * Fix - Sale Price Labels Price Suffixes HTML
173
+ * Fix - Partial refunded order email legal item information
174
+ * Fix - Hook priority for product units in loop
175
+ * Fix - Parcel delivery checkbox validation
176
+
177
  = 1.8.3 =
178
  * Fix - Is empty check in 1.8.2
179
  * Fix - API free shipping
templates/checkout/dhl-parcel-shop-finder.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Parcel Shop finder markup
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 id="wc-gzd-parcel-shop-finder-iframe-wrapper">
14
+ <div id="wc-gzd-parcel-finder-background-overlay">
15
+ <div id="wc-gzd-parcel-finder-iframe-overlay">
16
+ <a id="wc-gzd-parcel-finder-close-btn">X</a>
17
+ <iframe id="wc-gzd-parcel-finder-iframe"></iframe>
18
+ </div>
19
+ </div>
20
+ </div>
21
+
uninstall.php ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WooCommerce GZD Uninstall
4
+ *
5
+ * Uninstalling WooCommerce Germanized deletes pages, tables, and options.
6
+ *
7
+ * @author WooThemes
8
+ * @category Core
9
+ * @package WooCommerce/Uninstaller
10
+ * @version 2.3.0
11
+ */
12
+
13
+ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
14
+ exit;
15
+ }
16
+
17
+ global $wpdb, $wp_version;
18
+
19
+ wp_clear_scheduled_hook( 'woocommerce_gzd_customer_cleanup' );
20
+ wp_clear_scheduled_hook( 'woocommerce_gzd_trusted_shops_reviews' );
21
+ wp_clear_scheduled_hook( 'woocommerce_gzd_ekomi' );
22
+
23
+ if ( defined( 'WC_GZD_REMOVE_ALL_DATA' ) && true === WC_GZD_REMOVE_ALL_DATA ) {
24
+
25
+ include_once( 'includes/class-wc-gzd-install.php' );
26
+
27
+ // Delete digital rates
28
+ $wpdb->delete( $wpdb->prefix . 'woocommerce_tax_rates', array( 'tax_rate_class' => 'virtual-rate' ), array( '%s' ) );
29
+
30
+ // delete pages
31
+ wp_trash_post( get_option( 'woocommerce_revocation_page_id' ) );
32
+ wp_trash_post( get_option( 'woocommerce_data_security_page_id' ) );
33
+ wp_trash_post( get_option( 'woocommerce_imprint_page_id' ) );
34
+ wp_trash_post( get_option( 'woocommerce_terms_page_id' ) );
35
+ wp_trash_post( get_option( 'woocommerce_shipping_costs_page_id' ) );
36
+ wp_trash_post( get_option( 'woocommerce_payment_methods_page_id' ) );
37
+
38
+ // Delete options.
39
+ $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE 'woocommerce_gzd\_%';" );
40
+ // Delete options.
41
+ $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE 'wc_gzd\_%';" );
42
+
43
+ $meta_keys = array(
44
+ '_unit_base',
45
+ '_unit_product',
46
+ '_unit_price_auto',
47
+ '_unit_price_regular',
48
+ '_unit_price',
49
+ '_unit_price_sale',
50
+ '_mini_desc',
51
+ '_free_shipping',
52
+ '_unit',
53
+ '_wc_gzd_ekomi_added',
54
+ '_service',
55
+ '_sale_price_label',
56
+ '_sale_price_regular_label',
57
+ '_legal_text',
58
+ '_trusted_shops_review_mail_sent',
59
+ '_direct_debit_bic',
60
+ '_direct_debit_iban',
61
+ '_direct_debit_holder',
62
+ '_parcel_delivery_opted_in',
63
+ '_shipping_parcelshop_post_number',
64
+ '_shipping_parcelshop',
65
+ '_shipping_title',
66
+ '_billing_title',
67
+ '_woocommerce_activation'
68
+ );
69
+
70
+ // Delete gzd meta data
71
+ $wpdb->query( "DELETE meta FROM {$wpdb->postmeta} meta WHERE meta.meta_key IN ('".join("','", $meta_keys)."');" );
72
+
73
+ // Delete ekomi data
74
+ $user_id = get_user_by( 'email', 'ekomi@loremipsumdolorom.com' );
75
+
76
+ if ( $user_id ) {
77
+ $wpdb->query( "DELETE meta FROM {$wpdb->commentmeta} LEFT JOIN {$wpdb->comments} comments ON comments.comment_ID = meta.comment_id WHERE user_id = {$user_id};" );
78
+ $wpdb->query( "DELETE comments FROM {$wpdb->comments} WHERE user_id = {$user_id};" );
79
+ wp_delete_user( $user_id );
80
+ }
81
+
82
+ // Delete terms if > WP 4.2 (term splitting was added in 4.2)
83
+ if ( version_compare( $wp_version, '4.2', '>=' ) ) {
84
+ // Delete term taxonomies
85
+ foreach ( array( 'product_delivery_time', 'product_unit', 'product_price_label' ) as $taxonomy ) {
86
+ $wpdb->delete(
87
+ $wpdb->term_taxonomy,
88
+ array(
89
+ 'taxonomy' => $taxonomy,
90
+ )
91
+ );
92
+ }
93
+
94
+ // Delete orphan relationships
95
+ $wpdb->query( "DELETE tr FROM {$wpdb->term_relationships} tr LEFT JOIN {$wpdb->posts} posts ON posts.ID = tr.object_id WHERE posts.ID IS NULL;" );
96
+
97
+ // Delete orphan terms
98
+ $wpdb->query( "DELETE t FROM {$wpdb->terms} t LEFT JOIN {$wpdb->term_taxonomy} tt ON t.term_id = tt.term_id WHERE tt.term_id IS NULL;" );
99
+
100
+ // Delete orphan term meta
101
+ if ( ! empty( $wpdb->termmeta ) ) {
102
+ $wpdb->query( "DELETE tm FROM {$wpdb->termmeta} tm LEFT JOIN {$wpdb->term_taxonomy} tt ON tm.term_id = tt.term_id WHERE tt.term_id IS NULL;" );
103
+ }
104
+ }
105
+
106
+ // Clear any cached data that has been removed
107
+ wp_cache_flush();
108
+ }
woocommerce-germanized.php CHANGED
@@ -3,21 +3,22 @@
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.8.3
7
  * Author: Vendidero
8
  * Author URI: https://vendidero.de
9
  * Requires at least: 3.8
10
  * Tested up to: 4.6
11
  * Requires at least WooCommerce: 2.4
12
- * Tested up to WooCommerce: 2.7
13
  *
14
  * Text Domain: woocommerce-germanized
15
  * Domain Path: /i18n/languages/
16
  *
17
  * @author Vendidero
18
  */
19
- if ( ! defined( 'ABSPATH' ) )
20
  exit; // Exit if accessed directly
 
21
 
22
  if ( ! class_exists( 'WooCommerce_Germanized' ) ) :
23
 
@@ -28,7 +29,7 @@ final class WooCommerce_Germanized {
28
  *
29
  * @var string
30
  */
31
- public $version = '1.8.3';
32
 
33
  /**
34
  * Single instance of WooCommerce Germanized Main Class
@@ -74,8 +75,9 @@ final class WooCommerce_Germanized {
74
  * @return WooCommerceGermanized - Main instance
75
  */
76
  public static function instance() {
77
- if ( is_null( self::$_instance ) )
78
  self::$_instance = new self();
 
79
  return self::$_instance;
80
  }
81
 
@@ -100,7 +102,7 @@ final class WooCommerce_Germanized {
100
  /**
101
  * Global getter
102
  *
103
- * @param string $key
104
  * @return mixed
105
  */
106
  public function __get( $key ) {
@@ -113,16 +115,17 @@ final class WooCommerce_Germanized {
113
  public function __construct() {
114
 
115
  // Auto-load classes on demand
116
- if ( function_exists( "__autoload" ) )
117
- spl_autoload_register( "__autoload" );
118
-
 
119
  spl_autoload_register( array( $this, 'autoload' ) );
120
 
121
- // Check if dependecies are installed
122
- $init = WC_GZD_Dependencies::instance( $this );
123
-
124
- if ( ! $init->is_loadable() )
125
  return;
 
126
 
127
  // Define constants
128
  $this->define_constants();
@@ -133,7 +136,7 @@ final class WooCommerce_Germanized {
133
  register_activation_hook( __FILE__, array( 'WC_GZD_Install', 'install' ) );
134
  add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'action_links' ) );
135
  add_action( 'after_setup_theme', array( $this, 'include_template_functions' ), 12 );
136
-
137
  add_action( 'init', array( $this, 'init' ), 0 );
138
  add_action( 'init', array( 'WC_GZD_Shortcodes', 'init' ), 2 );
139
  add_action( 'init', array( $this, 'setup_compatibility' ), 15 );
@@ -152,7 +155,7 @@ final class WooCommerce_Germanized {
152
 
153
  /**
154
  * Checks if is pro user
155
- *
156
  * @return boolean
157
  */
158
  public function is_pro() {
@@ -168,12 +171,13 @@ final class WooCommerce_Germanized {
168
  do_action( 'before_woocommerce_germanized_init' );
169
 
170
  $this->load_plugin_textdomain();
171
-
172
- if ( get_option( 'woocommerce_gzd_display_checkout_fallback' ) == 'yes' )
173
  add_filter( 'woocommerce_germanized_filter_template', array( $this, 'set_checkout_fallback' ), 10, 3 );
174
-
 
175
  add_filter( 'woocommerce_get_settings_pages', array( $this, 'add_settings' ) );
176
-
177
  add_filter( 'woocommerce_enqueue_styles', array( $this, 'add_styles' ) );
178
  // Load after WooCommerce Frontend scripts
179
  add_action( 'wp_enqueue_scripts', array( $this, 'add_scripts' ), 15 );
@@ -187,8 +191,7 @@ final class WooCommerce_Germanized {
187
  add_filter( 'woocommerce_get_order_item_totals', array( $this, 'order_item_totals' ), 0, 2 );
188
 
189
  // Unsure wether this could lead to future problems - tax classes with same name wont be merged anylonger
190
- //add_filter( 'woocommerce_rate_code', array( $this, 'prevent_tax_name_merge' ), PHP_INT_MAX, 2 );
191
-
192
  // Hide cart estimated text if chosen
193
  add_action( 'woocommerce_cart_totals_after_order_total', array( $this, 'hide_cart_estimated_text' ) );
194
  add_action( 'woocommerce_after_cart_totals', array( $this, 'remove_cart_tax_zero_filter' ) );
@@ -202,7 +205,7 @@ final class WooCommerce_Germanized {
202
  // Remove cart subtotal filter
203
  add_action( 'template_redirect', array( $this, 'remove_cart_unit_price_filter' ) );
204
 
205
- $this->emails = new WC_GZD_Emails();
206
 
207
  // Init action
208
  do_action( 'woocommerce_germanized_init' );
@@ -211,33 +214,33 @@ final class WooCommerce_Germanized {
211
  /**
212
  * Auto-load WC_Germanized classes on demand to reduce memory consumption.
213
  *
214
- * @param mixed $class
215
  * @return void
216
  */
217
  public function autoload( $class ) {
218
-
219
  $path = $this->plugin_path() . '/includes/';
220
  $original_class = $class;
221
  $class = strtolower( $class );
222
  $file = 'class-' . str_replace( '_', '-', $class ) . '.php';
223
 
224
- if ( strpos( $class, 'wc_gzd_admin' ) !== false )
225
  $path = $this->plugin_path() . '/includes/admin/';
226
- else if ( strpos( $class, 'wc_gzd_gateway_' ) !== false )
227
  $path = $this->plugin_path() . '/includes/gateways/' . substr( str_replace( '_', '-', $class ), 15 ) . '/';
228
- else if ( strpos( $class, 'wc_gzd_trusted_shops' ) !== false )
229
  $path = $this->plugin_path() . '/includes/trusted-shops/';
230
- else if ( strpos( $class, 'wc_gzd_compatibility' ) !== false )
231
  $path = $this->plugin_path() . '/includes/compatibility/';
232
- else if ( strpos( $class, 'defuse\crypto' ) !== false ) {
233
  $path = $this->plugin_path() . '/includes/gateways/direct-debit/libraries/php-encryption/';
234
- $file = ucfirst( str_replace( 'Defuse/Crypto/', '', str_replace( '\\', '/', $original_class ) ) . '.php' );
235
- } else if ( strpos( $class, 'digitick\sepa' ) !== false ) {
236
  $path = $this->plugin_path() . '/includes/gateways/direct-debit/libraries/php-sepa-xml/';
237
- $file = ucfirst( str_replace( 'Digitick/Sepa/', '', str_replace( '\\', '/', $original_class ) ) . '.php' );
238
- } else if ( strpos( $class, 'ekomi\\' ) !== false ) {
239
  $path = $this->plugin_path() . '/includes/libraries/Ekomi/';
240
- $file = ucfirst( str_replace( 'Ekomi/', '', str_replace( '\\', '/', $original_class ) ) . '.php' );
241
  }
242
 
243
  if ( $path && is_readable( $path . $file ) ) {
@@ -267,7 +270,7 @@ final class WooCommerce_Germanized {
267
 
268
  /**
269
  * Get WC Germanized template path
270
- *
271
  * @return string
272
  */
273
  public function template_path() {
@@ -296,12 +299,12 @@ final class WooCommerce_Germanized {
296
  */
297
  private function includes() {
298
 
299
- include_once ( 'includes/wc-gzd-core-functions.php' );
300
- include_once ( 'includes/wc-gzd-legacy-functions.php' );
301
- include_once ( 'includes/class-wc-gzd-install.php' );
302
 
303
  if ( is_admin() ) {
304
-
305
  include_once( 'includes/admin/class-wc-gzd-admin.php' );
306
  include_once( 'includes/admin/class-wc-gzd-admin-welcome.php' );
307
  include_once( 'includes/admin/class-wc-gzd-admin-notices.php' );
@@ -313,8 +316,9 @@ final class WooCommerce_Germanized {
313
  include_once( 'includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php' );
314
  include_once( 'includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php' );
315
 
316
- if ( defined( 'DOING_AJAX' ) )
317
  $this->ajax_includes();
 
318
 
319
  if ( ( ! is_admin() || defined( 'DOING_AJAX' ) ) && ! defined( 'DOING_CRON' ) ) {
320
  if ( did_action( 'woocommerce_loaded' ) ) {
@@ -325,25 +329,27 @@ final class WooCommerce_Germanized {
325
  }
326
 
327
  // Post types
328
- include_once ( 'includes/class-wc-gzd-post-types.php' );
329
  // Gateway manipulation
330
- include_once ( 'includes/class-wc-gzd-payment-gateways.php' );
331
  // Template priority
332
- include_once ( 'includes/class-wc-gzd-hook-priorities.php' );
333
 
334
  // Abstracts
335
- include_once ( 'includes/abstracts/abstract-wc-gzd-product.php' );
336
- include_once ( 'includes/abstracts/abstract-wc-gzd-taxonomy.php' );
337
- include_once ( 'includes/abstracts/abstract-wc-gzd-compatibility.php' );
338
 
339
  // API
340
- include_once ( 'includes/api/class-wc-gzd-rest-api.php' );
341
 
342
- include_once ( 'includes/wc-gzd-cart-functions.php' );
343
- include_once ( 'includes/wc-gzd-order-functions.php' );
344
- include_once ( 'includes/class-wc-gzd-checkout.php' );
345
- include_once ( 'includes/class-wc-gzd-customer-helper.php' );
346
- include_once ( 'includes/class-wc-gzd-virtual-vat-helper.php' );
 
 
347
 
348
  $this->setup_trusted_shops();
349
  $this->ekomi = new WC_GZD_Ekomi();
@@ -353,13 +359,14 @@ final class WooCommerce_Germanized {
353
  public function setup_compatibility() {
354
 
355
  $plugins = apply_filters( 'woocommerce_gzd_compatibilities', array( 'wpml', 'woocommerce-subscriptions' ) );
356
-
357
  foreach ( $plugins as $comp ) {
358
-
359
  $classname = str_replace( ' ', '_', 'WC_GZD_Compatibility_' . ucwords( str_replace( '-', ' ', $comp ) ) );
360
-
361
- if ( class_exists( $classname ) )
362
  $this->compatibilities[ $comp ] = new $classname();
 
363
  }
364
 
365
  }
@@ -382,48 +389,51 @@ final class WooCommerce_Germanized {
382
  * Function used to Init WooCommerceGermanized Template Functions - This makes them pluggable by plugins and themes.
383
  */
384
  public function include_template_functions() {
385
- if ( ! is_admin() || defined( 'DOING_AJAX' ) )
386
  include_once( 'includes/wc-gzd-template-functions.php' );
 
387
  }
388
 
389
  /**
390
  * Filter WooCommerce Templates to look into /templates before looking within theme folder
391
  *
392
- * @param string $template
393
- * @param string $template_name
394
- * @param string $template_path
395
  * @return string
396
  */
397
  public function filter_templates( $template, $template_name, $template_path ) {
398
  $template_path = $this->template_path();
399
 
400
- if ( ! isset( $GLOBALS[ 'wc_gzd_template_name' ] ) || empty( $GLOBALS[ 'wc_gzd_template_name' ] ) || ! is_array( $GLOBALS[ 'wc_gzd_template_name' ] ) )
401
  $GLOBALS['wc_gzd_template_name'] = array();
402
-
 
403
  $GLOBALS['wc_gzd_template_name'][] = $template_name;
404
 
405
  // Check Theme
406
  $theme_template = locate_template(
407
  array(
408
- trailingslashit( $template_path ) . $template_name,
409
- $template_name
410
  )
411
  );
412
 
413
  $template_name = apply_filters( 'woocommerce_gzd_template_name', $template_name );
414
 
415
  // Load Default
416
- if ( ! $theme_template && file_exists( apply_filters( 'woocommerce_gzd_default_plugin_template', $this->plugin_path() . '/templates/' . $template_name, $template_name ) ) )
417
  $template = apply_filters( 'woocommerce_gzd_default_plugin_template', $this->plugin_path() . '/templates/' . $template_name, $template_name );
418
- else if ( $theme_template )
419
  $template = $theme_template;
420
-
 
421
  return apply_filters( 'woocommerce_germanized_filter_template', $template, $template_name, $template_path );
422
  }
423
 
424
  /**
425
  * Get templates which are legally critical
426
- *
427
  * @return array
428
  */
429
  public function get_critical_templates() {
@@ -432,19 +442,20 @@ final class WooCommerce_Germanized {
432
 
433
  /**
434
  * Sets review-order.php fallback (if activated) by filtering template name.
435
- *
436
  * @param string $template_name
437
  * @return string
438
  */
439
  public function set_checkout_fallback( $template, $template_name, $template_path ) {
440
-
441
- $path = WC()->plugin_path() . '/templates/';
442
 
443
- if ( strstr( $template_name, 'review-order.php' ) )
 
 
444
  return trailingslashit( $path ) . 'checkout/review-order.php';
445
- else if ( strstr( $template_name, 'form-checkout.php' ) )
446
  return trailingslashit( $path ) . 'checkout/form-checkout.php';
447
-
 
448
  return $template;
449
  }
450
 
@@ -457,20 +468,22 @@ final class WooCommerce_Germanized {
457
 
458
  /**
459
  * Replace default WC_Shipping_Rate to enable exact taxation for shipping costs
460
- *
461
- * @param array $rates containing WC_Shipping_Rate objects
462
  * @param WC_Shipping_Rate $rate current object
463
- * @return array
464
  */
465
  public function replace_shipping_rate_class( $rates, $rate ) {
466
 
467
- if ( get_option( 'woocommerce_gzd_shipping_tax' ) !== 'yes' )
468
  return $rates;
 
469
 
470
  foreach ( $rates as $key => $rate ) {
471
  // Check for instance to make sure calculation is not done for multiple times
472
- if ( ! $rate instanceof WC_GZD_Shipping_Rate )
473
  $rates[ $key ] = new WC_GZD_Shipping_Rate( $rate );
 
474
  }
475
 
476
  return $rates;
@@ -481,13 +494,14 @@ final class WooCommerce_Germanized {
481
  * Filter is being remove right after get_cart_tax - check has been finished within cart-totals.php
482
  */
483
  public function hide_cart_estimated_text() {
484
- if ( get_option( 'woocommerce_gzd_display_hide_cart_tax_estimated' ) == 'yes' )
485
  add_filter( 'woocommerce_get_cart_tax', array( $this, 'set_cart_tax_zero' ) );
 
486
  }
487
 
488
  /**
489
  * This will set the cart tax to zero
490
- *
491
  * @param float $tax current's cart tax
492
  * @return int
493
  */
@@ -499,8 +513,9 @@ final class WooCommerce_Germanized {
499
  * Removes the zero cart tax filter after get_cart_tax has been finished
500
  */
501
  public function remove_cart_tax_zero_filter() {
502
- if ( get_option( 'woocommerce_gzd_display_hide_cart_tax_estimated' ) == 'yes' )
503
  remove_filter( 'woocommerce_get_cart_tax', array( $this, 'set_cart_tax_zero' ) );
 
504
  }
505
 
506
  /**
@@ -514,8 +529,9 @@ final class WooCommerce_Germanized {
514
  */
515
  public function filter_product_classes( $classname, $product_type, $post_type, $product_id ) {
516
  $gzd_classname = str_replace( 'WC', 'WC_GZD', $classname );
517
- if ( class_exists( $gzd_classname ) )
518
  $classname = $gzd_classname;
 
519
  return $classname;
520
  }
521
 
@@ -530,7 +546,7 @@ final class WooCommerce_Germanized {
530
  */
531
  public function load_plugin_textdomain() {
532
  $locale = apply_filters( 'plugin_locale', get_locale(), 'woocommerce-germanized' );
533
-
534
  load_textdomain( 'woocommerce-germanized', trailingslashit( WP_LANG_DIR ) . 'woocommerce-germanized/woocommerce-germanized-' . $locale . '.mo' );
535
  load_plugin_textdomain( 'woocommerce-germanized', false, plugin_basename( dirname( __FILE__ ) ) . '/i18n/languages/' );
536
  }
@@ -538,7 +554,7 @@ final class WooCommerce_Germanized {
538
  /**
539
  * Show action links on the plugin screen
540
  *
541
- * @param mixed $links
542
  * @return array
543
  */
544
  public function action_links( $links ) {
@@ -550,18 +566,18 @@ final class WooCommerce_Germanized {
550
  /**
551
  * Add styles to frontend
552
  *
553
- * @param array $styles
554
  */
555
  public function add_styles( $styles ) {
556
  $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
557
-
558
  $styles['woocommerce-gzd-layout'] = array(
559
- 'src' => str_replace( array( 'http:', 'https:' ), '', WC_germanized()->plugin_url() ) . '/assets/css/woocommerce-gzd-layout' . $suffix . '.css',
560
- 'deps' => '',
561
- 'version' => WC_GERMANIZED_VERSION,
562
- 'media' => 'all'
563
  );
564
-
565
  return $styles;
566
  }
567
 
@@ -570,8 +586,8 @@ final class WooCommerce_Germanized {
570
  */
571
  public function add_inline_styles() {
572
  $color = ( get_option( 'woocommerce_gzd_display_checkout_table_color' ) ? get_option( 'woocommerce_gzd_display_checkout_table_color' ) : '#eee' );
573
- $custom_css = ".woocommerce-checkout .shop_table { background-color: $color; }";
574
- wp_add_inline_style( 'woocommerce-gzd-layout', $custom_css );
575
  }
576
 
577
  /**
@@ -579,24 +595,33 @@ final class WooCommerce_Germanized {
579
  */
580
  public function add_scripts() {
581
  global $post;
582
-
583
  $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
584
  $assets_path = str_replace( array( 'http:', 'https:' ), '', WC_germanized()->plugin_url() ) . '/assets/';
585
  $frontend_script_path = $assets_path . 'js/';
586
 
587
- if ( is_page() && is_object( $post ) && has_shortcode( $post->post_content, 'revocation_form' ) )
588
  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 );
589
-
590
- if ( is_checkout() )
591
- wp_enqueue_script( 'wc-gzd-checkout', $frontend_script_path . 'checkout' . $suffix . '.js', array( 'jquery', 'wc-checkout' ), WC_GERMANIZED_VERSION, true );
592
-
 
 
 
 
 
 
 
593
  if ( is_singular( 'product' ) ) {
594
  $product = wc_get_product( $post->ID );
595
  if ( $product && $product->is_type( 'variable' ) ) {
596
  // Enqueue variation scripts
597
  wp_enqueue_script( 'wc-gzd-add-to-cart-variation', $frontend_script_path . 'add-to-cart-variation' . $suffix . '.js', array( 'jquery', 'woocommerce', 'wc-add-to-cart-variation' ), WC_GERMANIZED_VERSION, true );
598
  }
599
- }
 
 
600
  }
601
 
602
  /**
@@ -605,18 +630,21 @@ final class WooCommerce_Germanized {
605
  public function localize_scripts() {
606
  global $wp;
607
  $assets_path = str_replace( array( 'http:', 'https:' ), '', WC()->plugin_url() ) . '/assets/';
 
608
  if ( wp_script_is( 'wc-gzd-revocation' ) ) {
609
  wp_localize_script( 'wc-gzd-revocation', 'wc_gzd_revocation_params', apply_filters( 'wc_gzd_revocation_params', array(
610
  'ajax_url' => WC()->ajax_url(),
611
  'ajax_loader_url' => apply_filters( 'woocommerce_ajax_loader_url', $assets_path . 'images/ajax-loader@2x.gif' ),
612
  ) ) );
613
  }
 
 
614
  }
615
 
616
  /**
617
  * Add WooCommerce Germanized Settings Tab
618
  *
619
- * @param array $integrations
620
  * @return array
621
  */
622
  public function add_settings( $integrations ) {
@@ -629,59 +657,64 @@ final class WooCommerce_Germanized {
629
  * Add small business global Email Footer
630
  */
631
  public function email_small_business_notice() {
632
- if ( get_option( 'woocommerce_gzd_small_enterprise' ) == 'yes' )
633
  wc_get_template( 'global/small-business-info.php' );
 
634
  }
635
 
636
  /**
637
  * PHP 5.3 backwards compatibility for getting date diff in days
638
- *
639
  * @param string $from date from
640
  * @param string $to date to
641
  * @return array
642
  */
643
  public function get_date_diff( $from, $to ) {
644
  $diff = abs( strtotime( $to ) - strtotime( $from ) );
645
- return array( 'd' => floor( $diff / ( 60*60*24 ) ) );
 
 
646
  }
647
 
648
  /**
649
  * Add Custom Email templates
650
  *
651
- * @param array $mails
652
  * @return array
653
  */
654
  public function add_emails( $mails ) {
655
- $mails[ 'WC_GZD_Email_Customer_Paid_For_Order' ] = include 'includes/emails/class-wc-gzd-email-customer-paid-for-order.php';
656
- $mails[ 'WC_GZD_Email_Customer_New_Account_Activation' ] = include 'includes/emails/class-wc-gzd-email-customer-new-account-activation.php';
657
- $mails[ 'WC_GZD_Email_Customer_Revocation' ] = include 'includes/emails/class-wc-gzd-email-customer-revocation.php';
658
- $mails[ 'WC_GZD_Email_Customer_Ekomi' ] = include 'includes/emails/class-wc-gzd-email-customer-ekomi.php';
659
- $mails[ 'WC_GZD_Email_Customer_Trusted_Shops' ] = include 'includes/emails/class-wc-gzd-email-customer-trusted-shops.php';
660
  return $mails;
661
  }
662
 
663
  /**
664
  * Filter Email template to include WooCommerce Germanized template files
665
  *
666
- * @param string $core_file
667
- * @param string $template
668
- * @param string $template_base
669
  * @return string
670
  */
671
  public function email_templates( $core_file, $template, $template_base ) {
672
-
673
- if ( ! file_exists( $template_base . $template ) && file_exists( $this->plugin_path() . '/templates/' . $template ) )
674
  $core_file = $this->plugin_path() . '/templates/' . $template;
675
-
 
676
  return apply_filters( 'woocommerce_germanized_email_template_hook', $core_file, $template, $template_base );
677
  }
678
 
679
  public function register_gateways( $gateways ) {
680
 
681
  // Do only load gateway for PHP >= 5.3 because of Namespaces
682
- if ( version_compare( phpversion(), '5.3', '>=' ) )
683
  $gateways[] = 'WC_GZD_Gateway_Direct_Debit';
684
-
 
685
  $gateways[] = 'WC_GZD_Gateway_Invoice';
686
 
687
  return $gateways;
@@ -690,10 +723,10 @@ final class WooCommerce_Germanized {
690
 
691
  /**
692
  * Improve tax display within order totals
693
- *
694
- * @param array $order_totals
695
- * @param object $order
696
- * @return array
697
  */
698
  public function order_item_totals( $order_totals, $order ) {
699
 
@@ -702,34 +735,42 @@ final class WooCommerce_Germanized {
702
 
703
  // Tax for inclusive prices
704
  if ( 'yes' == get_option( 'woocommerce_calc_taxes' ) && 'incl' == get_option( 'woocommerce_tax_display_cart' ) ) {
705
-
706
  $tax_array = array();
707
  if ( 'itemized' == get_option( 'woocommerce_tax_total_display' ) ) {
708
  foreach ( $order->get_tax_totals() as $code => $tax ) {
709
  $tax->rate = WC_Tax::get_rate_percent( $tax->rate_id );
710
- if ( ! isset( $tax_array[ $tax->rate ] ) )
711
- $tax_array[ $tax->rate ] = array( 'tax' => $tax, 'amount' => $tax->amount, 'contains' => array( $tax ) );
712
- else {
713
- array_push( $tax_array[ $tax->rate ][ 'contains' ], $tax );
714
- $tax_array[ $tax->rate ][ 'amount' ] += $tax->amount;
 
 
 
 
715
  }
716
  }
717
  } else {
718
  $base_rate = array_values( WC_Tax::get_shop_base_rate() );
719
  $base_rate = (object) $base_rate[0];
720
  $base_rate->rate = $base_rate->rate;
721
- $tax_array[] = array( 'tax' => $base_rate, 'contains' => array( $base_rate ), 'amount' => $order->get_total_tax() );
 
 
 
 
722
  }
723
 
724
  if ( ! empty( $tax_array ) ) {
725
  foreach ( $tax_array as $tax ) {
726
- $order_totals['tax_' . $tax['tax']->label] = array(
727
- 'label' => ( get_option( 'woocommerce_tax_total_display' ) == 'itemized' ? sprintf( __( 'incl. %s%% VAT', 'woocommerce-germanized' ), wc_gzd_format_tax_rate_percentage( $tax[ 'tax' ]->rate ) ) : __( 'incl. VAT', 'woocommerce-germanized' ) ),
728
- 'value' => wc_price( $tax[ 'amount' ] )
729
  );
730
  }
731
  }
732
- }
733
 
734
  return $order_totals;
735
  }
@@ -738,15 +779,16 @@ final class WooCommerce_Germanized {
738
  * Remove cart unit price subtotal filter
739
  */
740
  public function remove_cart_unit_price_filter() {
741
- if ( is_cart() )
742
  remove_filter( 'woocommerce_cart_item_subtotal', 'wc_gzd_cart_product_unit_price', 0, 2 );
 
743
  }
744
 
745
  /**
746
  * Prevent tax class merging. Could lead to future problems - not yet implemented
747
- *
748
  * @param string $code tax class code
749
- * @param int $rate_id
750
  * @return string unique tax class code
751
  */
752
  public function prevent_tax_name_merge( $code, $rate_id ) {
@@ -759,19 +801,24 @@ final class WooCommerce_Germanized {
759
  private function setup_trusted_shops() {
760
  // Initialize Trusted Shops module
761
  $this->trusted_shops = new WC_GZD_Trusted_Shops( $this, array(
762
- 'prefix' => 'GZD_',
763
- 'et_params' => array( 'utm_campaign' => 'shopsoftware', 'utm_content' => 'WOOCOMMERCEGERMANIZED' ),
764
- 'signup_params' => array( 'utm_source' => 'woocommerce-germanized', 'utm_campaign' => 'woocommerce-germanized' ),
765
- 'urls' => array(
766
- 'integration' => 'http://www.trustedshops.de/shopbetreiber/integration/shopsoftware-integration/woocommerce-germanized/',
767
- 'signup' => 'http://www.trustbadge.com/de/Preise/',
768
- 'trustbadge_custom' => 'http://www.trustedshops.de/shopbetreiber/integration/trustbadge/trustbadge-custom/',
769
- 'reviews' => 'http://www.trustedshops.de/shopbetreiber/integration/product-reviews/',
770
- ),
 
 
 
 
 
 
771
  )
772
  );
773
  }
774
-
775
  }
776
 
777
  endif;
@@ -784,5 +831,3 @@ function WC_germanized() {
784
  }
785
 
786
  $GLOBALS['woocommerce_germanized'] = WC_germanized();
787
-
788
- ?>
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.8.4
7
  * Author: Vendidero
8
  * Author URI: https://vendidero.de
9
  * Requires at least: 3.8
10
  * Tested up to: 4.6
11
  * Requires at least WooCommerce: 2.4
12
+ * Tested up to WooCommerce: 3.0
13
  *
14
  * Text Domain: woocommerce-germanized
15
  * Domain Path: /i18n/languages/
16
  *
17
  * @author Vendidero
18
  */
19
+ if ( ! defined( 'ABSPATH' ) ) {
20
  exit; // Exit if accessed directly
21
+ }
22
 
23
  if ( ! class_exists( 'WooCommerce_Germanized' ) ) :
24
 
29
  *
30
  * @var string
31
  */
32
+ public $version = '1.8.4';
33
 
34
  /**
35
  * Single instance of WooCommerce Germanized Main Class
75
  * @return WooCommerceGermanized - Main instance
76
  */
77
  public static function instance() {
78
+ if ( is_null( self::$_instance ) ) {
79
  self::$_instance = new self();
80
+ }
81
  return self::$_instance;
82
  }
83
 
102
  /**
103
  * Global getter
104
  *
105
+ * @param string $key
106
  * @return mixed
107
  */
108
  public function __get( $key ) {
115
  public function __construct() {
116
 
117
  // Auto-load classes on demand
118
+ if ( function_exists( '__autoload' ) ) {
119
+ spl_autoload_register( '__autoload' );
120
+ }
121
+
122
  spl_autoload_register( array( $this, 'autoload' ) );
123
 
124
+ $dependencies = apply_filters( 'woocommerce_gzd_dependencies_instance', WC_GZD_Dependencies::instance( $this ) );
125
+
126
+ if ( ! $dependencies->is_loadable() ) {
 
127
  return;
128
+ }
129
 
130
  // Define constants
131
  $this->define_constants();
136
  register_activation_hook( __FILE__, array( 'WC_GZD_Install', 'install' ) );
137
  add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'action_links' ) );
138
  add_action( 'after_setup_theme', array( $this, 'include_template_functions' ), 12 );
139
+
140
  add_action( 'init', array( $this, 'init' ), 0 );
141
  add_action( 'init', array( 'WC_GZD_Shortcodes', 'init' ), 2 );
142
  add_action( 'init', array( $this, 'setup_compatibility' ), 15 );
155
 
156
  /**
157
  * Checks if is pro user
158
+ *
159
  * @return boolean
160
  */
161
  public function is_pro() {
171
  do_action( 'before_woocommerce_germanized_init' );
172
 
173
  $this->load_plugin_textdomain();
174
+
175
+ if ( get_option( 'woocommerce_gzd_display_checkout_fallback' ) == 'yes' ) {
176
  add_filter( 'woocommerce_germanized_filter_template', array( $this, 'set_checkout_fallback' ), 10, 3 );
177
+ }
178
+
179
  add_filter( 'woocommerce_get_settings_pages', array( $this, 'add_settings' ) );
180
+
181
  add_filter( 'woocommerce_enqueue_styles', array( $this, 'add_styles' ) );
182
  // Load after WooCommerce Frontend scripts
183
  add_action( 'wp_enqueue_scripts', array( $this, 'add_scripts' ), 15 );
191
  add_filter( 'woocommerce_get_order_item_totals', array( $this, 'order_item_totals' ), 0, 2 );
192
 
193
  // Unsure wether this could lead to future problems - tax classes with same name wont be merged anylonger
194
+ // add_filter( 'woocommerce_rate_code', array( $this, 'prevent_tax_name_merge' ), PHP_INT_MAX, 2 );
 
195
  // Hide cart estimated text if chosen
196
  add_action( 'woocommerce_cart_totals_after_order_total', array( $this, 'hide_cart_estimated_text' ) );
197
  add_action( 'woocommerce_after_cart_totals', array( $this, 'remove_cart_tax_zero_filter' ) );
205
  // Remove cart subtotal filter
206
  add_action( 'template_redirect', array( $this, 'remove_cart_unit_price_filter' ) );
207
 
208
+ $this->emails = new WC_GZD_Emails();
209
 
210
  // Init action
211
  do_action( 'woocommerce_germanized_init' );
214
  /**
215
  * Auto-load WC_Germanized classes on demand to reduce memory consumption.
216
  *
217
+ * @param mixed $class
218
  * @return void
219
  */
220
  public function autoload( $class ) {
221
+
222
  $path = $this->plugin_path() . '/includes/';
223
  $original_class = $class;
224
  $class = strtolower( $class );
225
  $file = 'class-' . str_replace( '_', '-', $class ) . '.php';
226
 
227
+ if ( strpos( $class, 'wc_gzd_admin' ) !== false ) {
228
  $path = $this->plugin_path() . '/includes/admin/';
229
+ } elseif ( strpos( $class, 'wc_gzd_gateway_' ) !== false ) {
230
  $path = $this->plugin_path() . '/includes/gateways/' . substr( str_replace( '_', '-', $class ), 15 ) . '/';
231
+ } elseif ( strpos( $class, 'wc_gzd_trusted_shops' ) !== false ) {
232
  $path = $this->plugin_path() . '/includes/trusted-shops/';
233
+ } elseif ( strpos( $class, 'wc_gzd_compatibility' ) !== false ) {
234
  $path = $this->plugin_path() . '/includes/compatibility/';
235
+ } elseif ( strpos( $class, 'defuse\crypto' ) !== false ) {
236
  $path = $this->plugin_path() . '/includes/gateways/direct-debit/libraries/php-encryption/';
237
+ $file = ucfirst( str_replace( 'Defuse/Crypto/', '', str_replace( '\\', '/', $original_class ) ) . '.php' );
238
+ } elseif ( strpos( $class, 'digitick\sepa' ) !== false ) {
239
  $path = $this->plugin_path() . '/includes/gateways/direct-debit/libraries/php-sepa-xml/';
240
+ $file = ucfirst( str_replace( 'Digitick/Sepa/', '', str_replace( '\\', '/', $original_class ) ) . '.php' );
241
+ } elseif ( strpos( $class, 'ekomi\\' ) !== false ) {
242
  $path = $this->plugin_path() . '/includes/libraries/Ekomi/';
243
+ $file = ucfirst( str_replace( 'Ekomi/', '', str_replace( '\\', '/', $original_class ) ) . '.php' );
244
  }
245
 
246
  if ( $path && is_readable( $path . $file ) ) {
270
 
271
  /**
272
  * Get WC Germanized template path
273
+ *
274
  * @return string
275
  */
276
  public function template_path() {
299
  */
300
  private function includes() {
301
 
302
+ include_once( 'includes/wc-gzd-core-functions.php' );
303
+ include_once( 'includes/wc-gzd-legacy-functions.php' );
304
+ include_once( 'includes/class-wc-gzd-install.php' );
305
 
306
  if ( is_admin() ) {
307
+
308
  include_once( 'includes/admin/class-wc-gzd-admin.php' );
309
  include_once( 'includes/admin/class-wc-gzd-admin-welcome.php' );
310
  include_once( 'includes/admin/class-wc-gzd-admin-notices.php' );
316
  include_once( 'includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php' );
317
  include_once( 'includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php' );
318
 
319
+ if ( defined( 'DOING_AJAX' ) ) {
320
  $this->ajax_includes();
321
+ }
322
 
323
  if ( ( ! is_admin() || defined( 'DOING_AJAX' ) ) && ! defined( 'DOING_CRON' ) ) {
324
  if ( did_action( 'woocommerce_loaded' ) ) {
329
  }
330
 
331
  // Post types
332
+ include_once( 'includes/class-wc-gzd-post-types.php' );
333
  // Gateway manipulation
334
+ include_once( 'includes/class-wc-gzd-payment-gateways.php' );
335
  // Template priority
336
+ include_once( 'includes/class-wc-gzd-hook-priorities.php' );
337
 
338
  // Abstracts
339
+ include_once( 'includes/abstracts/abstract-wc-gzd-product.php' );
340
+ include_once( 'includes/abstracts/abstract-wc-gzd-taxonomy.php' );
341
+ include_once( 'includes/abstracts/abstract-wc-gzd-compatibility.php' );
342
 
343
  // API
344
+ include_once( 'includes/api/class-wc-gzd-rest-api.php' );
345
 
346
+ include_once( 'includes/wc-gzd-cart-functions.php' );
347
+ include_once( 'includes/wc-gzd-order-functions.php' );
348
+
349
+ include_once( 'includes/class-wc-gzd-checkout.php' );
350
+ include_once( 'includes/class-wc-gzd-dhl-parcel-shops.php' );
351
+ include_once( 'includes/class-wc-gzd-customer-helper.php' );
352
+ include_once( 'includes/class-wc-gzd-virtual-vat-helper.php' );
353
 
354
  $this->setup_trusted_shops();
355
  $this->ekomi = new WC_GZD_Ekomi();
359
  public function setup_compatibility() {
360
 
361
  $plugins = apply_filters( 'woocommerce_gzd_compatibilities', array( 'wpml', 'woocommerce-subscriptions' ) );
362
+
363
  foreach ( $plugins as $comp ) {
364
+
365
  $classname = str_replace( ' ', '_', 'WC_GZD_Compatibility_' . ucwords( str_replace( '-', ' ', $comp ) ) );
366
+
367
+ if ( class_exists( $classname ) ) {
368
  $this->compatibilities[ $comp ] = new $classname();
369
+ }
370
  }
371
 
372
  }
389
  * Function used to Init WooCommerceGermanized Template Functions - This makes them pluggable by plugins and themes.
390
  */
391
  public function include_template_functions() {
392
+ if ( ! is_admin() || defined( 'DOING_AJAX' ) ) {
393
  include_once( 'includes/wc-gzd-template-functions.php' );
394
+ }
395
  }
396
 
397
  /**
398
  * Filter WooCommerce Templates to look into /templates before looking within theme folder
399
  *
400
+ * @param string $template
401
+ * @param string $template_name
402
+ * @param string $template_path
403
  * @return string
404
  */
405
  public function filter_templates( $template, $template_name, $template_path ) {
406
  $template_path = $this->template_path();
407
 
408
+ if ( ! isset( $GLOBALS['wc_gzd_template_name'] ) || empty( $GLOBALS['wc_gzd_template_name'] ) || ! is_array( $GLOBALS['wc_gzd_template_name'] ) ) {
409
  $GLOBALS['wc_gzd_template_name'] = array();
410
+ }
411
+
412
  $GLOBALS['wc_gzd_template_name'][] = $template_name;
413
 
414
  // Check Theme
415
  $theme_template = locate_template(
416
  array(
417
+ trailingslashit( $template_path ) . $template_name,
418
+ $template_name,
419
  )
420
  );
421
 
422
  $template_name = apply_filters( 'woocommerce_gzd_template_name', $template_name );
423
 
424
  // Load Default
425
+ if ( ! $theme_template && file_exists( apply_filters( 'woocommerce_gzd_default_plugin_template', $this->plugin_path() . '/templates/' . $template_name, $template_name ) ) ) {
426
  $template = apply_filters( 'woocommerce_gzd_default_plugin_template', $this->plugin_path() . '/templates/' . $template_name, $template_name );
427
+ } elseif ( $theme_template ) {
428
  $template = $theme_template;
429
+ }
430
+
431
  return apply_filters( 'woocommerce_germanized_filter_template', $template, $template_name, $template_path );
432
  }
433
 
434
  /**
435
  * Get templates which are legally critical
436
+ *
437
  * @return array
438
  */
439
  public function get_critical_templates() {
442
 
443
  /**
444
  * Sets review-order.php fallback (if activated) by filtering template name.
445
+ *
446
  * @param string $template_name
447
  * @return string
448
  */
449
  public function set_checkout_fallback( $template, $template_name, $template_path ) {
 
 
450
 
451
+ $path = WC()->plugin_path() . '/templates/';
452
+
453
+ if ( strstr( $template_name, 'review-order.php' ) ) {
454
  return trailingslashit( $path ) . 'checkout/review-order.php';
455
+ } elseif ( strstr( $template_name, 'form-checkout.php' ) ) {
456
  return trailingslashit( $path ) . 'checkout/form-checkout.php';
457
+ }
458
+
459
  return $template;
460
  }
461
 
468
 
469
  /**
470
  * Replace default WC_Shipping_Rate to enable exact taxation for shipping costs
471
+ *
472
+ * @param array $rates containing WC_Shipping_Rate objects
473
  * @param WC_Shipping_Rate $rate current object
474
+ * @return array
475
  */
476
  public function replace_shipping_rate_class( $rates, $rate ) {
477
 
478
+ if ( get_option( 'woocommerce_gzd_shipping_tax' ) !== 'yes' ) {
479
  return $rates;
480
+ }
481
 
482
  foreach ( $rates as $key => $rate ) {
483
  // Check for instance to make sure calculation is not done for multiple times
484
+ if ( ! $rate instanceof WC_GZD_Shipping_Rate ) {
485
  $rates[ $key ] = new WC_GZD_Shipping_Rate( $rate );
486
+ }
487
  }
488
 
489
  return $rates;
494
  * Filter is being remove right after get_cart_tax - check has been finished within cart-totals.php
495
  */
496
  public function hide_cart_estimated_text() {
497
+ if ( get_option( 'woocommerce_gzd_display_hide_cart_tax_estimated' ) == 'yes' ) {
498
  add_filter( 'woocommerce_get_cart_tax', array( $this, 'set_cart_tax_zero' ) );
499
+ }
500
  }
501
 
502
  /**
503
  * This will set the cart tax to zero
504
+ *
505
  * @param float $tax current's cart tax
506
  * @return int
507
  */
513
  * Removes the zero cart tax filter after get_cart_tax has been finished
514
  */
515
  public function remove_cart_tax_zero_filter() {
516
+ if ( get_option( 'woocommerce_gzd_display_hide_cart_tax_estimated' ) == 'yes' ) {
517
  remove_filter( 'woocommerce_get_cart_tax', array( $this, 'set_cart_tax_zero' ) );
518
+ }
519
  }
520
 
521
  /**
529
  */
530
  public function filter_product_classes( $classname, $product_type, $post_type, $product_id ) {
531
  $gzd_classname = str_replace( 'WC', 'WC_GZD', $classname );
532
+ if ( class_exists( $gzd_classname ) ) {
533
  $classname = $gzd_classname;
534
+ }
535
  return $classname;
536
  }
537
 
546
  */
547
  public function load_plugin_textdomain() {
548
  $locale = apply_filters( 'plugin_locale', get_locale(), 'woocommerce-germanized' );
549
+
550
  load_textdomain( 'woocommerce-germanized', trailingslashit( WP_LANG_DIR ) . 'woocommerce-germanized/woocommerce-germanized-' . $locale . '.mo' );
551
  load_plugin_textdomain( 'woocommerce-germanized', false, plugin_basename( dirname( __FILE__ ) ) . '/i18n/languages/' );
552
  }
554
  /**
555
  * Show action links on the plugin screen
556
  *
557
+ * @param mixed $links
558
  * @return array
559
  */
560
  public function action_links( $links ) {
566
  /**
567
  * Add styles to frontend
568
  *
569
+ * @param array $styles
570
  */
571
  public function add_styles( $styles ) {
572
  $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
573
+
574
  $styles['woocommerce-gzd-layout'] = array(
575
+ 'src' => str_replace( array( 'http:', 'https:' ), '', WC_germanized()->plugin_url() ) . '/assets/css/woocommerce-gzd-layout' . $suffix . '.css',
576
+ 'deps' => '',
577
+ 'version' => WC_GERMANIZED_VERSION,
578
+ 'media' => 'all',
579
  );
580
+
581
  return $styles;
582
  }
583
 
586
  */
587
  public function add_inline_styles() {
588
  $color = ( get_option( 'woocommerce_gzd_display_checkout_table_color' ) ? get_option( 'woocommerce_gzd_display_checkout_table_color' ) : '#eee' );
589
+ $custom_css = ".woocommerce-checkout .shop_table { background-color: $color; }";
590
+ wp_add_inline_style( 'woocommerce-gzd-layout', $custom_css );
591
  }
592
 
593
  /**
595
  */
596
  public function add_scripts() {
597
  global $post;
598
+
599
  $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
600
  $assets_path = str_replace( array( 'http:', 'https:' ), '', WC_germanized()->plugin_url() ) . '/assets/';
601
  $frontend_script_path = $assets_path . 'js/';
602
 
603
+ if ( is_page() && is_object( $post ) && has_shortcode( $post->post_content, 'revocation_form' ) ) {
604
  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 );
605
+ }
606
+
607
+ if ( is_checkout() ) {
608
+
609
+ wp_enqueue_script( 'wc-gzd-checkout', $frontend_script_path . 'checkout' . $suffix . '.js', array(
610
+ 'jquery',
611
+ 'wc-checkout',
612
+ ), WC_GERMANIZED_VERSION, true );
613
+
614
+ }
615
+
616
  if ( is_singular( 'product' ) ) {
617
  $product = wc_get_product( $post->ID );
618
  if ( $product && $product->is_type( 'variable' ) ) {
619
  // Enqueue variation scripts
620
  wp_enqueue_script( 'wc-gzd-add-to-cart-variation', $frontend_script_path . 'add-to-cart-variation' . $suffix . '.js', array( 'jquery', 'woocommerce', 'wc-add-to-cart-variation' ), WC_GERMANIZED_VERSION, true );
621
  }
622
+ }
623
+
624
+ do_action( 'woocommerce_gzd_registered_scripts', $suffix, $frontend_script_path, $assets_path );
625
  }
626
 
627
  /**
630
  public function localize_scripts() {
631
  global $wp;
632
  $assets_path = str_replace( array( 'http:', 'https:' ), '', WC()->plugin_url() ) . '/assets/';
633
+
634
  if ( wp_script_is( 'wc-gzd-revocation' ) ) {
635
  wp_localize_script( 'wc-gzd-revocation', 'wc_gzd_revocation_params', apply_filters( 'wc_gzd_revocation_params', array(
636
  'ajax_url' => WC()->ajax_url(),
637
  'ajax_loader_url' => apply_filters( 'woocommerce_ajax_loader_url', $assets_path . 'images/ajax-loader@2x.gif' ),
638
  ) ) );
639
  }
640
+
641
+ do_action( 'woocommerce_gzd_localized_scripts', $assets_path );
642
  }
643
 
644
  /**
645
  * Add WooCommerce Germanized Settings Tab
646
  *
647
+ * @param array $integrations
648
  * @return array
649
  */
650
  public function add_settings( $integrations ) {
657
  * Add small business global Email Footer
658
  */
659
  public function email_small_business_notice() {
660
+ if ( get_option( 'woocommerce_gzd_small_enterprise' ) == 'yes' ) {
661
  wc_get_template( 'global/small-business-info.php' );
662
+ }
663
  }
664
 
665
  /**
666
  * PHP 5.3 backwards compatibility for getting date diff in days
667
+ *
668
  * @param string $from date from
669
  * @param string $to date to
670
  * @return array
671
  */
672
  public function get_date_diff( $from, $to ) {
673
  $diff = abs( strtotime( $to ) - strtotime( $from ) );
674
+ return array(
675
+ 'd' => floor( $diff / ( 60 * 60 * 24 ) ),
676
+ );
677
  }
678
 
679
  /**
680
  * Add Custom Email templates
681
  *
682
+ * @param array $mails
683
  * @return array
684
  */
685
  public function add_emails( $mails ) {
686
+ $mails['WC_GZD_Email_Customer_Paid_For_Order'] = include 'includes/emails/class-wc-gzd-email-customer-paid-for-order.php';
687
+ $mails['WC_GZD_Email_Customer_New_Account_Activation'] = include 'includes/emails/class-wc-gzd-email-customer-new-account-activation.php';
688
+ $mails['WC_GZD_Email_Customer_Revocation'] = include 'includes/emails/class-wc-gzd-email-customer-revocation.php';
689
+ $mails['WC_GZD_Email_Customer_Ekomi'] = include 'includes/emails/class-wc-gzd-email-customer-ekomi.php';
690
+ $mails['WC_GZD_Email_Customer_Trusted_Shops'] = include 'includes/emails/class-wc-gzd-email-customer-trusted-shops.php';
691
  return $mails;
692
  }
693
 
694
  /**
695
  * Filter Email template to include WooCommerce Germanized template files
696
  *
697
+ * @param string $core_file
698
+ * @param string $template
699
+ * @param string $template_base
700
  * @return string
701
  */
702
  public function email_templates( $core_file, $template, $template_base ) {
703
+
704
+ if ( ! file_exists( $template_base . $template ) && file_exists( $this->plugin_path() . '/templates/' . $template ) ) {
705
  $core_file = $this->plugin_path() . '/templates/' . $template;
706
+ }
707
+
708
  return apply_filters( 'woocommerce_germanized_email_template_hook', $core_file, $template, $template_base );
709
  }
710
 
711
  public function register_gateways( $gateways ) {
712
 
713
  // Do only load gateway for PHP >= 5.3 because of Namespaces
714
+ if ( version_compare( phpversion(), '5.3', '>=' ) ) {
715
  $gateways[] = 'WC_GZD_Gateway_Direct_Debit';
716
+ }
717
+
718
  $gateways[] = 'WC_GZD_Gateway_Invoice';
719
 
720
  return $gateways;
723
 
724
  /**
725
  * Improve tax display within order totals
726
+ *
727
+ * @param array $order_totals
728
+ * @param object $order
729
+ * @return array
730
  */
731
  public function order_item_totals( $order_totals, $order ) {
732
 
735
 
736
  // Tax for inclusive prices
737
  if ( 'yes' == get_option( 'woocommerce_calc_taxes' ) && 'incl' == get_option( 'woocommerce_tax_display_cart' ) ) {
738
+
739
  $tax_array = array();
740
  if ( 'itemized' == get_option( 'woocommerce_tax_total_display' ) ) {
741
  foreach ( $order->get_tax_totals() as $code => $tax ) {
742
  $tax->rate = WC_Tax::get_rate_percent( $tax->rate_id );
743
+ if ( ! isset( $tax_array[ $tax->rate ] ) ) {
744
+ $tax_array[ $tax->rate ] = array(
745
+ 'tax' => $tax,
746
+ 'amount' => $tax->amount,
747
+ 'contains' => array( $tax ),
748
+ );
749
+ } else {
750
+ array_push( $tax_array[ $tax->rate ]['contains'], $tax );
751
+ $tax_array[ $tax->rate ]['amount'] += $tax->amount;
752
  }
753
  }
754
  } else {
755
  $base_rate = array_values( WC_Tax::get_shop_base_rate() );
756
  $base_rate = (object) $base_rate[0];
757
  $base_rate->rate = $base_rate->rate;
758
+ $tax_array[] = array(
759
+ 'tax' => $base_rate,
760
+ 'contains' => array( $base_rate ),
761
+ 'amount' => $order->get_total_tax(),
762
+ );
763
  }
764
 
765
  if ( ! empty( $tax_array ) ) {
766
  foreach ( $tax_array as $tax ) {
767
+ $order_totals[ 'tax_' . $tax['tax']->label ] = array(
768
+ 'label' => ( get_option( 'woocommerce_tax_total_display' ) == 'itemized' ? sprintf( __( 'incl. %s%% VAT', 'woocommerce-germanized' ), wc_gzd_format_tax_rate_percentage( $tax['tax']->rate ) ) : __( 'incl. VAT', 'woocommerce-germanized' ) ),
769
+ 'value' => wc_price( $tax['amount'] ),
770
  );
771
  }
772
  }
773
+ }// End if().
774
 
775
  return $order_totals;
776
  }
779
  * Remove cart unit price subtotal filter
780
  */
781
  public function remove_cart_unit_price_filter() {
782
+ if ( is_cart() ) {
783
  remove_filter( 'woocommerce_cart_item_subtotal', 'wc_gzd_cart_product_unit_price', 0, 2 );
784
+ }
785
  }
786
 
787
  /**
788
  * Prevent tax class merging. Could lead to future problems - not yet implemented
789
+ *
790
  * @param string $code tax class code
791
+ * @param int $rate_id
792
  * @return string unique tax class code
793
  */
794
  public function prevent_tax_name_merge( $code, $rate_id ) {
801
  private function setup_trusted_shops() {
802
  // Initialize Trusted Shops module
803
  $this->trusted_shops = new WC_GZD_Trusted_Shops( $this, array(
804
+ 'prefix' => 'GZD_',
805
+ 'et_params' => array(
806
+ 'utm_campaign' => 'shopsoftware',
807
+ 'utm_content' => 'WOOCOMMERCEGERMANIZED',
808
+ ),
809
+ 'signup_params' => array(
810
+ 'utm_source' => 'woocommerce-germanized',
811
+ 'utm_campaign' => 'woocommerce-germanized',
812
+ ),
813
+ 'urls' => array(
814
+ 'integration' => 'http://www.trustedshops.de/shopbetreiber/integration/shopsoftware-integration/woocommerce-germanized/',
815
+ 'signup' => 'http://www.trustbadge.com/de/Preise/',
816
+ 'trustbadge_custom' => 'http://www.trustedshops.de/shopbetreiber/integration/trustbadge/trustbadge-custom/',
817
+ 'reviews' => 'http://www.trustedshops.de/shopbetreiber/integration/product-reviews/',
818
+ ),
819
  )
820
  );
821
  }
 
822
  }
823
 
824
  endif;
831
  }
832
 
833
  $GLOBALS['woocommerce_germanized'] = WC_germanized();