Version Description
- Feature: WC 3.6 compatibility
- Improvement: By default mark post_number as non-required for better gateway compatibility
- Improvement: Do only replace reviews with TS reviews if product sticker has been enabled
- Fix: Variable unit price sale displaying
- Fix: Replace cart product attribute data instead of merging
Download this release
Release Info
Developer | vendidero |
Plugin | WooCommerce Germanized |
Version | 2.2.10 |
Comparing to | |
See all releases |
Code changes from version 2.2.9 to 2.2.10
- i18n/languages/woocommerce-germanized-de_DE_formal.mo +0 -0
- i18n/languages/woocommerce-germanized-de_DE_formal.po +2 -2
- includes/abstracts/abstract-wc-gzd-product.php +1 -1
- includes/class-wc-gzd-dhl-parcel-shops.php +8 -6
- includes/class-wc-gzd-product-attribute-helper.php +1 -1
- includes/class-wc-gzd-product-variable.php +12 -5
- includes/class-wc-gzd-shipping-rate.php +9 -8
- includes/class-wc-gzd-shortcodes.php +3 -1
- includes/gateways/direct-debit/class-wc-gzd-gateway-direct-debit.php +7 -3
- includes/trusted-shops/class-wc-gzd-trusted-shops-admin.php +0 -1
- includes/trusted-shops/class-wc-gzd-trusted-shops-template-hooks.php +2 -2
- includes/trusted-shops/class-wc-gzd-trusted-shops.php +5 -1
- includes/wc-gzd-cart-functions.php +8 -7
- readme.txt +9 -5
- woocommerce-germanized.php +4 -4
i18n/languages/woocommerce-germanized-de_DE_formal.mo
CHANGED
Binary file
|
i18n/languages/woocommerce-germanized-de_DE_formal.po
CHANGED
@@ -3,7 +3,7 @@ msgstr ""
|
|
3 |
"Project-Id-Version: WooCommerce Germanized v1.5.1\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: 2019-03-18 13:08+0100\n"
|
6 |
-
"PO-Revision-Date: 2019-03
|
7 |
"Last-Translator: holzhannes <holzhannes@posteo.de>\n"
|
8 |
"Language-Team: \n"
|
9 |
"Language: de_DE\n"
|
@@ -1574,7 +1574,7 @@ msgstr ""
|
|
1574 |
# @ woocommerce-germanized
|
1575 |
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:734
|
1576 |
msgid "Hi {first_name},"
|
1577 |
-
msgstr "Sehr geehrte
|
1578 |
|
1579 |
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:739
|
1580 |
msgid "Hide Username"
|
3 |
"Project-Id-Version: WooCommerce Germanized v1.5.1\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: 2019-03-18 13:08+0100\n"
|
6 |
+
"PO-Revision-Date: 2019-04-03 10:11+0200\n"
|
7 |
"Last-Translator: holzhannes <holzhannes@posteo.de>\n"
|
8 |
"Language-Team: \n"
|
9 |
"Language: de_DE\n"
|
1574 |
# @ woocommerce-germanized
|
1575 |
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:734
|
1576 |
msgid "Hi {first_name},"
|
1577 |
+
msgstr "Sehr geehrte(r) {title} {last_name},"
|
1578 |
|
1579 |
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:739
|
1580 |
msgid "Hide Username"
|
includes/abstracts/abstract-wc-gzd-product.php
CHANGED
@@ -547,7 +547,7 @@ class WC_GZD_Product {
|
|
547 |
* @return boolean
|
548 |
*/
|
549 |
public function is_on_unit_sale() {
|
550 |
-
return apply_filters( 'woocommerce_gzd_product_is_on_unit_sale', ( $this->get_unit_sale_price() !== $this->get_unit_regular_price() && $this->get_unit_sale_price() == $this->
|
551 |
}
|
552 |
|
553 |
/**
|
547 |
* @return boolean
|
548 |
*/
|
549 |
public function is_on_unit_sale() {
|
550 |
+
return apply_filters( 'woocommerce_gzd_product_is_on_unit_sale', ( $this->get_unit_sale_price() !== $this->get_unit_regular_price() && $this->get_unit_sale_price() == $this->get_unit_price_raw() ), $this );
|
551 |
}
|
552 |
|
553 |
/**
|
includes/class-wc-gzd-dhl-parcel-shops.php
CHANGED
@@ -154,9 +154,10 @@ class WC_GZD_DHL_Parcel_Shops {
|
|
154 |
'priority' => 50,
|
155 |
);
|
156 |
|
|
|
157 |
$fields['parcelshop_post_number'] = array(
|
158 |
'type' => 'text',
|
159 |
-
'required' =>
|
160 |
'label' => __( 'Postnumber', 'woocommerce-germanized' ),
|
161 |
'before' => 'address_1',
|
162 |
'group' => array( 'shipping' ),
|
@@ -232,10 +233,9 @@ class WC_GZD_DHL_Parcel_Shops {
|
|
232 |
return $fields;
|
233 |
}
|
234 |
|
235 |
-
if (
|
236 |
-
|
237 |
-
|
238 |
-
$fields['shipping_address_1']['label'] = __( 'Parcel Shop', 'woocommerce-germanized' );
|
239 |
}
|
240 |
|
241 |
return $fields;
|
@@ -275,6 +275,7 @@ class WC_GZD_DHL_Parcel_Shops {
|
|
275 |
WC()->checkout()->checkout_fields = $fields;
|
276 |
} else {
|
277 |
$fields = WC()->checkout()->checkout_fields;
|
|
|
278 |
$fields['shipping']['shipping_address_1']['label'] = __( 'Parcel Shop', 'wooocommerce-germanized' );
|
279 |
WC()->checkout()->checkout_fields = $fields;
|
280 |
}
|
@@ -288,8 +289,9 @@ class WC_GZD_DHL_Parcel_Shops {
|
|
288 |
);
|
289 |
|
290 |
foreach( $required as $req ) {
|
291 |
-
if ( ! isset( $data[ $req ] ) || empty( $data[ $req ] ) )
|
292 |
return;
|
|
|
293 |
}
|
294 |
|
295 |
$is_valid_postnumber = (bool) preg_match( '/^([0-9]*)$/', $data[ 'shipping_parcelshop_post_number' ] );
|
154 |
'priority' => 50,
|
155 |
);
|
156 |
|
157 |
+
// By default mark as non-required for better gateway compatibility
|
158 |
$fields['parcelshop_post_number'] = array(
|
159 |
'type' => 'text',
|
160 |
+
'required' => false,
|
161 |
'label' => __( 'Postnumber', 'woocommerce-germanized' ),
|
162 |
'before' => 'address_1',
|
163 |
'group' => array( 'shipping' ),
|
233 |
return $fields;
|
234 |
}
|
235 |
|
236 |
+
if ( isset( $_POST['shipping_parcelshop'] ) ) {
|
237 |
+
$fields['shipping_address_1']['label'] = __( 'Parcel Shop', 'woocommerce-germanized' );
|
238 |
+
$fields['shipping_parcelshop_post_number']['required'] = true;
|
|
|
239 |
}
|
240 |
|
241 |
return $fields;
|
275 |
WC()->checkout()->checkout_fields = $fields;
|
276 |
} else {
|
277 |
$fields = WC()->checkout()->checkout_fields;
|
278 |
+
$fields['shipping']['shipping_parcelshop_post_number']['required'] = true;
|
279 |
$fields['shipping']['shipping_address_1']['label'] = __( 'Parcel Shop', 'wooocommerce-germanized' );
|
280 |
WC()->checkout()->checkout_fields = $fields;
|
281 |
}
|
289 |
);
|
290 |
|
291 |
foreach( $required as $req ) {
|
292 |
+
if ( ! isset( $data[ $req ] ) || empty( $data[ $req ] ) ) {
|
293 |
return;
|
294 |
+
}
|
295 |
}
|
296 |
|
297 |
$is_valid_postnumber = (bool) preg_match( '/^([0-9]*)$/', $data[ 'shipping_parcelshop_post_number' ] );
|
includes/class-wc-gzd-product-attribute-helper.php
CHANGED
@@ -101,7 +101,7 @@ class WC_GZD_Product_Attribute_Helper {
|
|
101 |
$item_data_product = wc_gzd_get_gzd_product( $cart_product )->get_checkout_attributes( $item_data, isset( $cart_item['variation'] ) ? $cart_item['variation'] : array() );
|
102 |
|
103 |
if ( $item_data !== $item_data_product ) {
|
104 |
-
$item_data =
|
105 |
}
|
106 |
|
107 |
return $item_data;
|
101 |
$item_data_product = wc_gzd_get_gzd_product( $cart_product )->get_checkout_attributes( $item_data, isset( $cart_item['variation'] ) ? $cart_item['variation'] : array() );
|
102 |
|
103 |
if ( $item_data !== $item_data_product ) {
|
104 |
+
$item_data = array_replace_recursive( $item_data, $item_data_product );
|
105 |
}
|
106 |
|
107 |
return $item_data;
|
includes/class-wc-gzd-product-variable.php
CHANGED
@@ -14,6 +14,8 @@ if ( ! defined( 'ABSPATH' ) )
|
|
14 |
*/
|
15 |
class WC_GZD_Product_Variable extends WC_GZD_Product {
|
16 |
|
|
|
|
|
17 |
/**
|
18 |
* Get the min or max variation unit regular price.
|
19 |
* @param string $min_or_max - min or max
|
@@ -108,17 +110,23 @@ class WC_GZD_Product_Variable extends WC_GZD_Product {
|
|
108 |
|
109 |
if ( $this->has_unit() ) {
|
110 |
|
111 |
-
$min_price
|
112 |
-
$max_price
|
|
|
|
|
113 |
|
114 |
if ( wc_gzd_get_dependencies()->woocommerce_version_supports_crud() ) {
|
115 |
|
116 |
if ( $min_price !== $max_price ) {
|
117 |
-
$price =
|
|
|
|
|
118 |
} else {
|
119 |
-
$price =
|
120 |
}
|
121 |
|
|
|
|
|
122 |
} else {
|
123 |
|
124 |
$price = $min_price !== $max_price ? sprintf( _x( '%1$s–%2$s', 'Price range: from-to', 'woocommerce-germanized' ), wc_price( $min_price ), wc_price( $max_price ) ) : wc_price( $min_price );
|
@@ -271,7 +279,6 @@ class WC_GZD_Product_Variable extends WC_GZD_Product {
|
|
271 |
}
|
272 |
|
273 |
return $this->unit_prices_array[ $price_hash ];
|
274 |
-
|
275 |
}
|
276 |
|
277 |
}
|
14 |
*/
|
15 |
class WC_GZD_Product_Variable extends WC_GZD_Product {
|
16 |
|
17 |
+
protected $unit_prices_array = array();
|
18 |
+
|
19 |
/**
|
20 |
* Get the min or max variation unit regular price.
|
21 |
* @param string $min_or_max - min or max
|
110 |
|
111 |
if ( $this->has_unit() ) {
|
112 |
|
113 |
+
$min_price = current( $prices['price'] );
|
114 |
+
$max_price = end( $prices['price'] );
|
115 |
+
$min_reg_price = current( $prices['regular_price'] );
|
116 |
+
$max_reg_price = end( $prices['regular_price'] );
|
117 |
|
118 |
if ( wc_gzd_get_dependencies()->woocommerce_version_supports_crud() ) {
|
119 |
|
120 |
if ( $min_price !== $max_price ) {
|
121 |
+
$price = wc_format_price_range( $min_price, $max_price );
|
122 |
+
} elseif ( $this->is_on_sale() && $min_reg_price === $max_reg_price ) {
|
123 |
+
$price = wc_format_sale_price( wc_price( $max_reg_price ), wc_price( $min_price ) );
|
124 |
} else {
|
125 |
+
$price = wc_price( $min_price );
|
126 |
}
|
127 |
|
128 |
+
$price = apply_filters( 'woocommerce_gzd_variable_unit_price_html', $price, $this );
|
129 |
+
|
130 |
} else {
|
131 |
|
132 |
$price = $min_price !== $max_price ? sprintf( _x( '%1$s–%2$s', 'Price range: from-to', 'woocommerce-germanized' ), wc_price( $min_price ), wc_price( $max_price ) ) : wc_price( $min_price );
|
279 |
}
|
280 |
|
281 |
return $this->unit_prices_array[ $price_hash ];
|
|
|
282 |
}
|
283 |
|
284 |
}
|
includes/class-wc-gzd-shipping-rate.php
CHANGED
@@ -4,6 +4,8 @@ class WC_GZD_Shipping_Rate extends WC_Shipping_Rate {
|
|
4 |
|
5 |
public $tax_shares = array();
|
6 |
|
|
|
|
|
7 |
public function __construct( WC_Shipping_Rate $rate ) {
|
8 |
$num = 5;
|
9 |
|
@@ -19,25 +21,25 @@ class WC_GZD_Shipping_Rate extends WC_Shipping_Rate {
|
|
19 |
}
|
20 |
|
21 |
if ( get_option( 'woocommerce_gzd_shipping_tax' ) === 'yes' && ( ! empty( $rate->taxes ) || get_option( 'woocommerce_gzd_shipping_tax_force' ) === 'yes' ) ) {
|
22 |
-
|
23 |
$this->set_shared_taxes();
|
24 |
}
|
25 |
}
|
26 |
|
|
|
27 |
$this->set_costs();
|
28 |
}
|
29 |
|
30 |
-
public function set_shared_taxes() {
|
31 |
-
$
|
32 |
-
$this->tax_shares = wc_gzd_get_cart_tax_share();
|
33 |
|
34 |
// Calculate tax class share
|
35 |
if ( ! empty( $this->tax_shares ) ) {
|
36 |
|
37 |
foreach ( $this->tax_shares as $rate => $class ) {
|
38 |
$tax_rates = WC_Tax::get_rates( $rate );
|
39 |
-
$this->tax_shares[ $rate ]['shipping_tax_share'] = $this->
|
40 |
-
$this->tax_shares[ $rate ]['shipping_tax'] = WC_Tax::calc_tax( ( $this->
|
41 |
}
|
42 |
|
43 |
$taxes = array();
|
@@ -56,7 +58,7 @@ class WC_GZD_Shipping_Rate extends WC_Shipping_Rate {
|
|
56 |
|
57 |
public function set_costs() {
|
58 |
if ( WC()->cart->tax_display_cart === 'incl' || WC()->customer->is_vat_exempt() ) {
|
59 |
-
$cost = $this->
|
60 |
|
61 |
if ( WC()->customer->is_vat_exempt() ) {
|
62 |
$shipping_rates = WC_Tax::get_shipping_tax_rates();
|
@@ -75,7 +77,6 @@ class WC_GZD_Shipping_Rate extends WC_Shipping_Rate {
|
|
75 |
public function get_shared_taxes() {
|
76 |
return $this->taxes;
|
77 |
}
|
78 |
-
|
79 |
}
|
80 |
|
81 |
?>
|
4 |
|
5 |
public $tax_shares = array();
|
6 |
|
7 |
+
protected $default_cost = 0;
|
8 |
+
|
9 |
public function __construct( WC_Shipping_Rate $rate ) {
|
10 |
$num = 5;
|
11 |
|
21 |
}
|
22 |
|
23 |
if ( get_option( 'woocommerce_gzd_shipping_tax' ) === 'yes' && ( ! empty( $rate->taxes ) || get_option( 'woocommerce_gzd_shipping_tax_force' ) === 'yes' ) ) {
|
24 |
+
if ( $this->get_shipping_tax() > 0 ) {
|
25 |
$this->set_shared_taxes();
|
26 |
}
|
27 |
}
|
28 |
|
29 |
+
$this->default_cost = $rate->cost;
|
30 |
$this->set_costs();
|
31 |
}
|
32 |
|
33 |
+
public function set_shared_taxes( $cart_contents = array() ) {
|
34 |
+
$this->tax_shares = wc_gzd_get_cart_tax_share( 'shipping', $cart_contents );
|
|
|
35 |
|
36 |
// Calculate tax class share
|
37 |
if ( ! empty( $this->tax_shares ) ) {
|
38 |
|
39 |
foreach ( $this->tax_shares as $rate => $class ) {
|
40 |
$tax_rates = WC_Tax::get_rates( $rate );
|
41 |
+
$this->tax_shares[ $rate ]['shipping_tax_share'] = $this->default_cost * $class[ 'share' ];
|
42 |
+
$this->tax_shares[ $rate ]['shipping_tax'] = WC_Tax::calc_tax( ( $this->default_cost * $class[ 'share' ] ), $tax_rates, ( WC()->cart->tax_display_cart === 'incl' ) );
|
43 |
}
|
44 |
|
45 |
$taxes = array();
|
58 |
|
59 |
public function set_costs() {
|
60 |
if ( WC()->cart->tax_display_cart === 'incl' || WC()->customer->is_vat_exempt() ) {
|
61 |
+
$cost = $this->default_cost - array_sum( $this->taxes );
|
62 |
|
63 |
if ( WC()->customer->is_vat_exempt() ) {
|
64 |
$shipping_rates = WC_Tax::get_shipping_tax_rates();
|
77 |
public function get_shared_taxes() {
|
78 |
return $this->taxes;
|
79 |
}
|
|
|
80 |
}
|
81 |
|
82 |
?>
|
includes/class-wc-gzd-shortcodes.php
CHANGED
@@ -118,10 +118,12 @@ class WC_GZD_Shortcodes {
|
|
118 |
$legal = ob_get_clean();
|
119 |
|
120 |
ob_start();
|
|
|
121 |
woocommerce_gzd_template_single_price_unit();
|
|
|
122 |
$unit = ob_get_clean();
|
123 |
|
124 |
-
return $price . strip_tags( $unit . $legal, '<span><a>' );
|
125 |
}
|
126 |
|
127 |
public static function gzd_add_to_cart( $atts ) {
|
118 |
$legal = ob_get_clean();
|
119 |
|
120 |
ob_start();
|
121 |
+
echo '<span class="price price-unit">';
|
122 |
woocommerce_gzd_template_single_price_unit();
|
123 |
+
echo '</span>';
|
124 |
$unit = ob_get_clean();
|
125 |
|
126 |
+
return $price . '<span class="wc-gzd-legal-price-info">' . strip_tags( $unit . $legal, '<span><a><ins><del>' ) . '</span>';
|
127 |
}
|
128 |
|
129 |
public static function gzd_add_to_cart( $atts ) {
|
includes/gateways/direct-debit/class-wc-gzd-gateway-direct-debit.php
CHANGED
@@ -499,11 +499,15 @@ Please notice: Period for pre-information of the SEPA direct debit is shortened
|
|
499 |
}
|
500 |
|
501 |
public function set_order_meta( $order_id ) {
|
502 |
-
|
503 |
$order = wc_get_order( $order_id );
|
504 |
|
505 |
-
if ( !
|
506 |
-
|
|
|
|
|
|
|
|
|
|
|
507 |
|
508 |
$holder = ( isset( $_POST[ 'direct_debit_account_holder' ] ) ? wc_clean( $_POST[ 'direct_debit_account_holder' ] ) : '' );
|
509 |
$iban = ( isset( $_POST[ 'direct_debit_account_iban' ] ) ? $this->maybe_encrypt( strtoupper( $this->clean_whitespaces( wc_clean( $_POST[ 'direct_debit_account_iban' ] ) ) ) ) : '' );
|
499 |
}
|
500 |
|
501 |
public function set_order_meta( $order_id ) {
|
|
|
502 |
$order = wc_get_order( $order_id );
|
503 |
|
504 |
+
if ( ! $order ) {
|
505 |
+
return;
|
506 |
+
}
|
507 |
+
|
508 |
+
if ( ! ( wc_gzd_get_crud_data( $order, 'payment_method' ) === $this->id ) ) {
|
509 |
+
return;
|
510 |
+
}
|
511 |
|
512 |
$holder = ( isset( $_POST[ 'direct_debit_account_holder' ] ) ? wc_clean( $_POST[ 'direct_debit_account_holder' ] ) : '' );
|
513 |
$iban = ( isset( $_POST[ 'direct_debit_account_iban' ] ) ? $this->maybe_encrypt( strtoupper( $this->clean_whitespaces( wc_clean( $_POST[ 'direct_debit_account_iban' ] ) ) ) ) : '' );
|
includes/trusted-shops/class-wc-gzd-trusted-shops-admin.php
CHANGED
@@ -452,7 +452,6 @@ class WC_GZD_Trusted_Shops_Admin {
|
|
452 |
|
453 |
array(
|
454 |
'title' => _x( 'Collect Product Reviews', 'trusted-shops', 'woocommerce-germanized' ),
|
455 |
-
'desc' => _x( '(WooCommerce Product Reviews will be replaced)', 'trusted-shops', 'woocommerce-germanized' ),
|
456 |
'desc_tip' => _x( 'Show Product Reviews on the product page in a separate tab, just as shown on the picture on the right.', 'trusted-shops', 'woocommerce-germanized' ),
|
457 |
'id' => 'woocommerce_' . $this->base->option_prefix . 'trusted_shops_reviews_enable',
|
458 |
'type' => 'gzd_toggle',
|
452 |
|
453 |
array(
|
454 |
'title' => _x( 'Collect Product Reviews', 'trusted-shops', 'woocommerce-germanized' ),
|
|
|
455 |
'desc_tip' => _x( 'Show Product Reviews on the product page in a separate tab, just as shown on the picture on the right.', 'trusted-shops', 'woocommerce-germanized' ),
|
456 |
'id' => 'woocommerce_' . $this->base->option_prefix . 'trusted_shops_reviews_enable',
|
457 |
'type' => 'gzd_toggle',
|
includes/trusted-shops/class-wc-gzd-trusted-shops-template-hooks.php
CHANGED
@@ -29,11 +29,11 @@ class WC_GZD_Trusted_Shops_Template_Hooks {
|
|
29 |
add_action( 'wp_footer', array( $this, 'template_trustbadge' ), 250 );
|
30 |
}
|
31 |
|
32 |
-
if ( $this->base->
|
33 |
add_filter( 'woocommerce_product_tabs', array( $this, 'remove_review_tab' ), 40, 1 );
|
34 |
}
|
35 |
|
36 |
-
if ( $this->base->
|
37 |
add_filter( 'woocommerce_product_tabs', array( $this, 'review_tab' ), 50, 1 );
|
38 |
}
|
39 |
|
29 |
add_action( 'wp_footer', array( $this, 'template_trustbadge' ), 250 );
|
30 |
}
|
31 |
|
32 |
+
if ( $this->base->product_reviews_visible() ) {
|
33 |
add_filter( 'woocommerce_product_tabs', array( $this, 'remove_review_tab' ), 40, 1 );
|
34 |
}
|
35 |
|
36 |
+
if ( $this->base->product_reviews_visible() ) {
|
37 |
add_filter( 'woocommerce_product_tabs', array( $this, 'review_tab' ), 50, 1 );
|
38 |
}
|
39 |
|
includes/trusted-shops/class-wc-gzd-trusted-shops.php
CHANGED
@@ -187,7 +187,7 @@ class WC_GZD_Trusted_Shops {
|
|
187 |
|
188 |
public function refresh() {
|
189 |
$this->id = $this->__get( 'id' );
|
190 |
-
$this->api_url = '
|
191 |
}
|
192 |
|
193 |
public function get_multi_language_compatibility() {
|
@@ -311,6 +311,10 @@ class WC_GZD_Trusted_Shops {
|
|
311 |
return ( $this->reviews_enable === 'yes' && $this->is_enabled() ? true : false );
|
312 |
}
|
313 |
|
|
|
|
|
|
|
|
|
314 |
public function is_product_sticker_enabled() {
|
315 |
return ( $this->is_product_reviews_enabled() && $this->product_sticker_enable === 'yes' ? true : false );
|
316 |
}
|
187 |
|
188 |
public function refresh() {
|
189 |
$this->id = $this->__get( 'id' );
|
190 |
+
$this->api_url = 'https://api.trustedshops.com/rest/public/v2/shops/'. $this->id .'/quality.json';
|
191 |
}
|
192 |
|
193 |
public function get_multi_language_compatibility() {
|
311 |
return ( $this->reviews_enable === 'yes' && $this->is_enabled() ? true : false );
|
312 |
}
|
313 |
|
314 |
+
public function product_reviews_visible() {
|
315 |
+
return ( $this->is_enabled() && $this->is_product_sticker_enabled() ? true : false );
|
316 |
+
}
|
317 |
+
|
318 |
public function is_product_sticker_enabled() {
|
319 |
return ( $this->is_product_reviews_enabled() && $this->product_sticker_enable === 'yes' ? true : false );
|
320 |
}
|
includes/wc-gzd-cart-functions.php
CHANGED
@@ -239,9 +239,9 @@ function wc_gzd_cart_product_units( $title, $cart_item, $cart_item_key = '' ) {
|
|
239 |
* @param string $type
|
240 |
* @return array
|
241 |
*/
|
242 |
-
function wc_gzd_get_cart_tax_share( $type = 'shipping' ) {
|
243 |
|
244 |
-
$cart = WC()->cart->cart_contents;
|
245 |
$tax_shares = array();
|
246 |
$item_totals = 0;
|
247 |
|
@@ -277,20 +277,21 @@ function wc_gzd_get_cart_tax_share( $type = 'shipping' ) {
|
|
277 |
$tax_shares[ $class ]['total'] = 0;
|
278 |
$tax_shares[ $class ]['key'] = '';
|
279 |
}
|
280 |
-
|
|
|
281 |
$tax_shares[ $class ]['total'] += ( $item['line_total'] + $item['line_tax'] );
|
282 |
$tax_shares[ $class ]['key'] = key( $item['line_tax_data']['total'] );
|
|
|
283 |
$item_totals += ( $item['line_total'] + $item['line_tax'] );
|
284 |
}
|
285 |
}
|
286 |
-
|
287 |
-
if ( ! empty( $tax_shares ) ) {
|
288 |
|
|
|
289 |
$default = ( $item_totals == 0 ? 1 / sizeof( $tax_shares ) : 0 );
|
290 |
|
291 |
-
foreach ( $tax_shares as $key => $class )
|
292 |
$tax_shares[ $key ]['share'] = ( $item_totals > 0 ? $class['total'] / $item_totals : $default );
|
293 |
-
|
294 |
}
|
295 |
|
296 |
return $tax_shares;
|
239 |
* @param string $type
|
240 |
* @return array
|
241 |
*/
|
242 |
+
function wc_gzd_get_cart_tax_share( $type = 'shipping', $cart_contents = array() ) {
|
243 |
|
244 |
+
$cart = empty( $cart_contents ) ? WC()->cart->cart_contents : $cart_contents;
|
245 |
$tax_shares = array();
|
246 |
$item_totals = 0;
|
247 |
|
277 |
$tax_shares[ $class ]['total'] = 0;
|
278 |
$tax_shares[ $class ]['key'] = '';
|
279 |
}
|
280 |
+
|
281 |
+
// Does not contain pricing data in case of recurring Subscriptions
|
282 |
$tax_shares[ $class ]['total'] += ( $item['line_total'] + $item['line_tax'] );
|
283 |
$tax_shares[ $class ]['key'] = key( $item['line_tax_data']['total'] );
|
284 |
+
|
285 |
$item_totals += ( $item['line_total'] + $item['line_tax'] );
|
286 |
}
|
287 |
}
|
|
|
|
|
288 |
|
289 |
+
if ( ! empty( $tax_shares ) ) {
|
290 |
$default = ( $item_totals == 0 ? 1 / sizeof( $tax_shares ) : 0 );
|
291 |
|
292 |
+
foreach ( $tax_shares as $key => $class ) {
|
293 |
$tax_shares[ $key ]['share'] = ( $item_totals > 0 ? $class['total'] / $item_totals : $default );
|
294 |
+
}
|
295 |
}
|
296 |
|
297 |
return $tax_shares;
|
readme.txt
CHANGED
@@ -4,8 +4,8 @@ Tags: woocommerce, woocommerce german, woocommerce DE, woocommerce germany, wooc
|
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 5.1
|
6 |
WC requires at least: 2.4
|
7 |
-
WC tested up to: 3.
|
8 |
-
Stable tag: 2.2.
|
9 |
Requires PHP: 5.3
|
10 |
License: GPLv3
|
11 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
@@ -142,9 +142,6 @@ By adjusting parameter width=55 (55 means 55px width/height) you may optionally
|
|
142 |
`[trusted_shops_rich_snippets]`
|
143 |
If you are using Trusted Shop's review functionality, you may insert a Google Rich Snippet to show your current shop's rating.
|
144 |
|
145 |
-
`[trusted_shops_reviews]`
|
146 |
-
Inserts your current Trusted Shops rating as an image (provided by Trusted Shops).
|
147 |
-
|
148 |
`[ekomi_badge]`
|
149 |
Inserts your eKomi badge as image.
|
150 |
By adjusting width=55 (55 means 55px width/height) you may optionally set badge's width.
|
@@ -184,6 +181,13 @@ Bug reports may be filed via our [GitHub repository](https://github.com/vendider
|
|
184 |
|
185 |
== Changelog ==
|
186 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
= 2.2.9 =
|
188 |
* Feature: Adjust email title format and customize it with placeholders e.g. first name or last name
|
189 |
* Improvement: Free shipping auto select implementation
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 5.1
|
6 |
WC requires at least: 2.4
|
7 |
+
WC tested up to: 3.6
|
8 |
+
Stable tag: 2.2.10
|
9 |
Requires PHP: 5.3
|
10 |
License: GPLv3
|
11 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
142 |
`[trusted_shops_rich_snippets]`
|
143 |
If you are using Trusted Shop's review functionality, you may insert a Google Rich Snippet to show your current shop's rating.
|
144 |
|
|
|
|
|
|
|
145 |
`[ekomi_badge]`
|
146 |
Inserts your eKomi badge as image.
|
147 |
By adjusting width=55 (55 means 55px width/height) you may optionally set badge's width.
|
181 |
|
182 |
== Changelog ==
|
183 |
|
184 |
+
= 2.2.10 =
|
185 |
+
* Feature: WC 3.6 compatibility
|
186 |
+
* Improvement: By default mark post_number as non-required for better gateway compatibility
|
187 |
+
* Improvement: Do only replace reviews with TS reviews if product sticker has been enabled
|
188 |
+
* Fix: Variable unit price sale displaying
|
189 |
+
* Fix: Replace cart product attribute data instead of merging
|
190 |
+
|
191 |
= 2.2.9 =
|
192 |
* Feature: Adjust email title format and customize it with placeholders e.g. first name or last name
|
193 |
* Improvement: Free shipping auto select implementation
|
woocommerce-germanized.php
CHANGED
@@ -3,15 +3,15 @@
|
|
3 |
* Plugin Name: WooCommerce Germanized
|
4 |
* Plugin URI: https://www.vendidero.de/woocommerce-germanized
|
5 |
* Description: WooCommerce Germanized extends WooCommerce to become a legally compliant store in the german market.
|
6 |
-
* Version: 2.2.
|
7 |
* Author: Vendidero
|
8 |
* Author URI: https://vendidero.de
|
9 |
* Requires at least: 3.8
|
10 |
* Tested up to: 5.1
|
11 |
* WC requires at least: 2.4.0
|
12 |
-
* WC tested up to: 3.
|
13 |
* Requires at least WooCommerce: 2.4
|
14 |
-
* Tested up to WooCommerce: 3.
|
15 |
*
|
16 |
* Text Domain: woocommerce-germanized
|
17 |
* Domain Path: /i18n/languages/
|
@@ -31,7 +31,7 @@ final class WooCommerce_Germanized {
|
|
31 |
*
|
32 |
* @var string
|
33 |
*/
|
34 |
-
public $version = '2.2.
|
35 |
|
36 |
/**
|
37 |
* Single instance of WooCommerce Germanized Main Class
|
3 |
* Plugin Name: WooCommerce Germanized
|
4 |
* Plugin URI: https://www.vendidero.de/woocommerce-germanized
|
5 |
* Description: WooCommerce Germanized extends WooCommerce to become a legally compliant store in the german market.
|
6 |
+
* Version: 2.2.10
|
7 |
* Author: Vendidero
|
8 |
* Author URI: https://vendidero.de
|
9 |
* Requires at least: 3.8
|
10 |
* Tested up to: 5.1
|
11 |
* WC requires at least: 2.4.0
|
12 |
+
* WC tested up to: 3.6.0
|
13 |
* Requires at least WooCommerce: 2.4
|
14 |
+
* Tested up to WooCommerce: 3.6
|
15 |
*
|
16 |
* Text Domain: woocommerce-germanized
|
17 |
* Domain Path: /i18n/languages/
|
31 |
*
|
32 |
* @var string
|
33 |
*/
|
34 |
+
public $version = '2.2.10';
|
35 |
|
36 |
/**
|
37 |
* Single instance of WooCommerce Germanized Main Class
|