Skip to content

Commit

Permalink
Log secret helper errors in case debug modus is enabled. Added mini c…
Browse files Browse the repository at this point in the history
…art block adjustments. Automatically activate subscriptions for invoice gateway after processing renewals.
  • Loading branch information
dennisnissle committed Dec 14, 2023
1 parent baaa2b7 commit ae74321
Show file tree
Hide file tree
Showing 18 changed files with 401 additions and 43 deletions.
36 changes: 36 additions & 0 deletions assets/js/blocks/cart-checkout/items.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
ul.wc-block-components-product-details {
li[class*="wc-block-components-product-details__gzd-"] {
.wc-block-components-product-details__name {
display: none;
}
.wc-block-components-product-details__value {
font-size: .8rem;
color: #757575;
}
}
}

.wc-gzd-small-business-info {
font-size: .8rem;
color: #757575;
}

.wc-gzd-unit-price {
font-weight: normal;
font-size: .8rem;
color: #757575;

.wc-block-components-product-details__name {
display: none;
}
}

ul.wc-block-components-product-details {
li.wc-block-components-product-details__gzd-unit-price {
display: none !important;
}

li.wc-not-gzd-summary-item-first {
margin-top: 1em;
}
}
43 changes: 4 additions & 39 deletions assets/js/blocks/checkout/style.scss
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
.wc-gzd-checkout {
@import '../cart-checkout/items';

.wc-gzd-checkout {
.wp-block-woocommerce-checkout-fields-block {
.wc-block-checkout__actions {
display: none;
Expand Down Expand Up @@ -103,41 +105,4 @@
}
}
}
}

ul.wc-block-components-product-details {
li[class*="wc-block-components-product-details__gzd-"] {
.wc-block-components-product-details__name {
display: none;
}
.wc-block-components-product-details__value {
font-size: .8rem;
color: #757575;
}
}
}

.wc-gzd-small-business-info {
font-size: .8rem;
color: #757575;
}

.wc-gzd-unit-price {
font-weight: normal;
font-size: .8rem;
color: #757575;

.wc-block-components-product-details__name {
display: none;
}
}

ul.wc-block-components-product-details {
li.wc-block-components-product-details__gzd-unit-price {
display: none !important;
}

li.wc-not-gzd-summary-item-first {
margin-top: 1em;
}
}
}
8 changes: 8 additions & 0 deletions assets/js/blocks/mini-cart/component-metadata.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/**
* Internal dependencies
*/
import MINI_CART_NOTICES from './mini-cart-notices/block.json';

export default {
MINI_CART_NOTICES
};
2 changes: 2 additions & 0 deletions assets/js/blocks/mini-cart/frontend.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
import './style.scss';
import './register-components';
Empty file.
30 changes: 30 additions & 0 deletions assets/js/blocks/mini-cart/mini-cart-notices/block.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"apiVersion": 2,
"name": "woocommerce-germanized/mini-cart-notices",
"version": "2.0.0",
"title": "Mini cart legal notices",
"category": "woocommerce",
"description": "Outputs mini cart legal notices.",
"supports": {
"align": false,
"html": false,
"multiple": false,
"reusable": false,
"inserter": true,
"color": {
"text": true,
"background": true
}
},
"parent": [ "woocommerce/mini-cart-footer-block" ],
"textdomain": "woocommerce-germanized",
"attributes": {
"lock": {
"type": "object",
"default": {
"remove": false,
"move": false
}
}
}
}
114 changes: 114 additions & 0 deletions assets/js/blocks/mini-cart/mini-cart-notices/frontend.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
import { useEffect, useState } from "@wordpress/element";
import { getSetting } from '@germanized/settings';
import { __, sprintf } from '@wordpress/i18n';
import { useSelect } from '@wordpress/data';
import { CART_STORE_KEY } from '@woocommerce/block-data';

import './style.scss';

/**
* External dependencies
*/
const Block = ({
className
}) => {
const displayCartPricesIncludingTax = getSetting(
'displayCartPricesIncludingTax',
false
);

const showTaxNotice = getSetting(
'showMiniCartTaxNotice',
true
);

const showShippingCostsNotice = getSetting(
'showMiniCartShippingCostsNotice',
true
);

const isSmallBusiness = getSetting(
'isSmallBusiness',
false
);

const smallBusinessNotice = getSetting(
'smallBusinessNotice',
''
);

const cart = useSelect(
( select, { dispatch } ) => {
const store = select( CART_STORE_KEY );
const cartData = store.getCartData();
const cartErrors = store.getCartErrors();
const cartTotals = store.getCartTotals();
const cartIsLoading =
! store.hasFinishedResolution( 'getCartData' );

const { receiveCart, receiveCartContents } = dispatch( CART_STORE_KEY );
const gzdDefaultData = {
'shipping_costs_notice': ''
};

const gzdData = cartData.extensions.hasOwnProperty( 'woocommerce-germanized' ) ? cartData.extensions['woocommerce-germanized'] : gzdDefaultData;
const gzdTaxNotice = displayCartPricesIncludingTax ? __( 'incl. VAT', 'woocommerce-germanized' ) : __( 'excl. VAT', 'woocommerce-germanized' );

return {
cartItems: cartData.items,
crossSellsProducts: cartData.crossSells,
cartItemsCount: cartData.itemsCount,
cartItemsWeight: cartData.itemsWeight,
cartNeedsPayment: cartData.needsPayment,
cartNeedsShipping: cartData.needsShipping,
cartItemErrors: cartData.errors,
cartTotals,
cartIsLoading,
cartErrors,
extensions: cartData.extensions,
shippingRates: cartData.shippingRates,
cartHasCalculatedShipping: cartData.hasCalculatedShipping,
paymentRequirements: cartData.paymentRequirements,
shippingCostsNotice: cartData.needsShipping ? gzdData.shipping_costs_notice : '',
taxNotice: cartTotals.total_tax > 0 ? gzdTaxNotice : '',
receiveCart,
receiveCartContents,
};
},
[ displayCartPricesIncludingTax ]
);

console.log( cart );

return (
<div className="wc-gzd-block-mini-cart-notices">
{ isSmallBusiness && smallBusinessNotice && ! showTaxNotice &&
<div className="wc-gzd-block-mini-cart-notices__notice wc-gzd-block-mini-cart-notices__small-business-notice"
dangerouslySetInnerHTML={ {
__html: smallBusinessNotice,
} }
>
</div>
}
<div className="wc-gzd-block-mini-cart-notices__notice-wrap">
{ cart.taxNotice && showTaxNotice &&
<div className="wc-gzd-block-mini-cart-notices__notice wc-gzd-block-mini-cart-notices__tax-notice"
dangerouslySetInnerHTML={ {
__html: cart.taxNotice,
} }
>
</div>
}
{ cart.shippingCostsNotice && showShippingCostsNotice &&
<div className="wc-gzd-block-mini-cart-notices__notice wc-gzd-block-mini-cart-notices__shipping-notice"
dangerouslySetInnerHTML={ {
__html: cart.shippingCostsNotice,
} }
>
</div>
}
</div>
</div>
);
};
export default Block;
31 changes: 31 additions & 0 deletions assets/js/blocks/mini-cart/mini-cart-notices/style.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
.wc-block-mini-cart__footer-actions {
flex-wrap: wrap;

.wc-gzd-block-mini-cart-notices {
justify-content: right;
margin-top: -7px;
font-size: 0.8rem;
color: #757575;
flex: 0 0 100%;
display: inline-flex;
text-align: right;
flex-wrap: wrap;

.wc-gzd-block-mini-cart-notices__notice {
&::after {
content: "\00a0";
}

&.wc-gzd-block-mini-cart-notices__small-business-notice {
flex: 0 0 100%;
}
}

.wc-gzd-block-mini-cart-notices__notice-wrap {
text-align: left;
display: flex;
justify-content: right;
flex: 0 0 100%;
}
}
}
17 changes: 17 additions & 0 deletions assets/js/blocks/mini-cart/register-components.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/**
* External dependencies
*/
import { registerCheckoutBlock } from '@woocommerce/blocks-checkout';
import { lazy } from '@wordpress/element';

import metadata from './component-metadata';

registerCheckoutBlock({
metadata: metadata.MINI_CART_NOTICES,
component: lazy(
() =>
import(
/* webpackChunkName: "mini-cart-blocks/mini-cart-notices" */ './mini-cart-notices/frontend'
)
),
});
5 changes: 5 additions & 0 deletions assets/js/blocks/mini-cart/style.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@import '../cart-checkout/items';

.wc-block-components-totals-item__description {
display: none !important;
}
2 changes: 1 addition & 1 deletion includes/class-wc-gzd-secret-box-helper.php
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ public static function maybe_insert_missing_key( $encryption_type = '' ) {
protected static function log_error( $error ) {
update_option( 'woocommerce_gzd_has_encryption_error', 'yes' );

if ( apply_filters( 'woocommerce_gzd_encryption_enable_logging', false ) && ( $logger = wc_get_logger() ) ) {
if ( apply_filters( 'woocommerce_gzd_encryption_enable_logging', wc_gzd_is_extended_debug_mode_enabled() ) && ( $logger = wc_get_logger() ) ) {
foreach ( $error->get_error_messages() as $message ) {
$logger->error( $message, array( 'source' => apply_filters( 'woocommerce_gzd_encryption_log_context', 'wc-gzd-encryption' ) ) );
}
Expand Down
6 changes: 6 additions & 0 deletions includes/gateways/invoice/class-wc-gzd-gateway-invoice.php
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,12 @@ public function is_available() {

public function process_subscription_payment( $order_total, $order_id ) {
$this->process_payment( $order_id );

if ( apply_filters( 'woocommerce_gzd_force_activate_subscription_for_invoice_payments', true, $order_id ) ) {
if ( class_exists( 'WC_Subscriptions_Manager' ) && is_callable( array( 'WC_Subscriptions_Manager', 'activate_subscriptions_for_order' ) ) ) {
WC_Subscriptions_Manager::activate_subscriptions_for_order( $order_id );
}
}
}

/**
Expand Down
11 changes: 9 additions & 2 deletions src/Blocks/Checkout.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
final class Checkout {

public function __construct() {
$this->adjust_checkout_block();
$this->adjust_markup();
$this->register_filters();
$this->register_integrations();
$this->register_endpoint_data();
Expand Down Expand Up @@ -80,7 +80,7 @@ function( $item_data, $item ) {
);
}

private function adjust_checkout_block() {
private function adjust_markup() {
add_filter(
'render_block',
function( $content, $block ) {
Expand Down Expand Up @@ -200,6 +200,12 @@ private function get_cart_schema() {
'type' => 'boolean',
'context' => array( 'view', 'edit' ),
),
'shipping_costs_notice' => array(
'description' => __( 'Cart shipping costs notice.', 'woocommerce-germanized' ),
'type' => 'string',
'context' => array( 'view', 'edit' ),
'readonly' => true,
),
'checkboxes' => array(
'description' => __( 'List of cart checkboxes.', 'woocommerce-germanized' ),
'type' => 'array',
Expand Down Expand Up @@ -308,6 +314,7 @@ private function get_cart_data() {
return array(
'applies_for_photovoltaic_system_vat_exempt' => wc_gzd_cart_applies_for_photovoltaic_system_vat_exemption(),
'checkboxes' => $checkboxes_for_api,
'shipping_costs_notice' => wc_gzd_get_shipping_costs_text(),
);
}

Expand Down
Loading

0 comments on commit ae74321

Please sign in to comment.