Skip to content

Instantly share code, notes, and snippets.

View nielslange's full-sized avatar
👨‍💻
Moving bits and bytes around the globe

Niels Lange nielslange

👨‍💻
Moving bits and bytes around the globe
View GitHub Profile
@nielslange
nielslange / snippet.js
Last active July 18, 2023 16:59
Cart Line Items filter » itemName
const { registerCheckoutFilters } = window.wc.blocksCheckout;
// Adjust item name of the cart line items.
registerCheckoutFilters( 'example-extension', {
itemName: ( value, extensions, args ) => {
// Return early since this filter is not being applied in the Cart context.
// We must return the original value we received here.
if ( args?.context !== 'cart' ) {
return value;
}
@nielslange
nielslange / snippet.js
Last active July 18, 2023 16:59
Cart Line Items filter » subtotalPriceFormat
const { registerCheckoutFilters } = window.wc.blocksCheckout;
// Adjust the subtotal price format.
registerCheckoutFilters( 'example-extension', {
subtotalPriceFormat: ( value, extensions, args ) => {
// Return early since this filter is not being applied in the Cart context.
// We must return the original value we received here.
if ( args?.context !== 'cart' ) {
return value;
}
@nielslange
nielslange / snippet.js
Last active July 18, 2023 17:00
Totals Footer Item filter » totalLabel
const { registerCheckoutFilters } = window.wc.blocksCheckout;
// Adjust the total label.
registerCheckoutFilters( 'example-extension', {
totalLabel: () => 'Deposit due today'
} );
@nielslange
nielslange / snippet.js
Last active July 18, 2023 17:00
Snackbar notices » showRemoveCouponNotice
const { registerCheckoutFilters } = window.wc.blocksCheckout;
// Prevent a couponCode called '10off' from creating a notice when it gets removed.
registerCheckoutFilters( 'example-extension', {
showRemoveCouponNotice: ( value, extensions, { couponCode } ) => {
return couponCode === '10off' ? false : value;
}
} );
@nielslange
nielslange / snippet.js
Last active July 18, 2023 17:01
Snackbar notices » showApplyCouponNotice
const { registerCheckoutFilters } = window.wc.blocksCheckout;
// Prevent a couponCode called '10off' from creating a notice when it gets applied.
registerCheckoutFilters( 'example-extension', {
showApplyCouponNotice: ( value, extensions, { couponCode } ) => {
return couponCode === '10off' ? false : value;
}
} );
diff --git a/assets/js/base/components/cart-checkout/address-form/address-form.tsx b/assets/js/base/components/cart-checkout/address-form/address-form.tsx
index cec368a6c..966ffeb06 100644
--- a/assets/js/base/components/cart-checkout/address-form/address-form.tsx
+++ b/assets/js/base/components/cart-checkout/address-form/address-form.tsx
@@ -144,6 +144,29 @@ const AddressForm = ( {
id = id || instanceId;
+ const customValidationHandler = (
+ inputObject: HTMLInputElement,
@nielslange
nielslange / simple-translation.js
Last active November 8, 2021 13:18
Translating strings
import { __ } from '@wordpress/i18n';
__( 'Hello, Luigi!', 'woo-gutenberg-products-block' );
@nielslange
nielslange / composer.json
Created January 15, 2021 11:08
Installing plugins and themes on a VIP Go site
{
"name": "niels/vip-go-site",
"description": "VIP Go test site of Niels Lange",
"repositories": [
{
"type": "composer",
"url": "https://wpackagist.org"
}
],
"require": {
@nielslange
nielslange / isValidIPv4.js
Last active January 6, 2021 12:32
JavaScript: Validate IPv4 address
// Validate IPv4 address
function isValidIPv4(string) {
const octet = '(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]?|0)';
const regex = new RegExp(`^${octet}\\.${octet}\\.${octet}\\.${octet}$`);
return regex.test(string) ? true : false;
}
@nielslange
nielslange / functions.php
Last active January 4, 2021 04:04
WordPress: Bulk-delete featured images
<?php
global $wpdb;
$wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id'" );