Skip to content

Instantly share code, notes, and snippets.

@chrismademe
chrismademe / blocks.txt
Created March 12, 2024 15:12
List of WordPress Block Editor / Gutenberg Core Blocks
# Last updated: 12th March 2024
#
# Note: This is a list from the Gutenberg repo so these
# may not all be in the Core Block Editor at the time
# of writing
archive
audio
block
button
@chrismademe
chrismademe / disable-wc-checkout.php
Created April 6, 2022 12:02
Disable WooCommerce Checkout
<?php
add_action( 'init', function() {
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
add_action( 'woocommerce_before_main_content', 'resknow_show_checkout_disable_notice', 5 );
add_action( 'woocommerce_before_cart', 'resknow_show_checkout_disable_notice', 5 );
@chrismademe
chrismademe / style.11ty.js
Created December 21, 2021 14:00
Compile SCSS in 11ty
const sass = require('sass');
const cleanCSS = require('clean-css');
module.exports = class {
data() {
return {
layout: false,
permalink: '/style.css',
eleventyExcludeFromCollections: true,
};
@chrismademe
chrismademe / date-diff-in-days.php
Created May 19, 2021 09:51
PHP: Difference between 2 dates in days
<?php
/**
* Date diff in days
* The difference in days between 2 dates
*
* @param $from string Y-m-d date string
* @param $to string Y-m-d date string
*/
function date_diff_in_days($from, $to) {
{
"workbench.iconTheme": "material-icon-theme",
"editor.fontFamily": "'JetBrains Mono', Menlo, Monaco, 'Courier New', monospace",
"editor.fontSize": 14, //14
"editor.lineHeight": 42,
"editor.fontLigatures": true,
"editor.minimap.enabled": false,
"editor.codeLens": false,
"editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?_",
"editor.snippetSuggestions": "top",
:root {
--color-gray-90: #373946;
--color-gray-70: #565869;
--color-gray-50: #77798a;
--color-gray-30: #b3b4bd;
--color-gray-10: #eeeef0;
--color-neutral-90: #002c59;
--color-neutral-50: #0779e4;
--color-neutral-10: #e1eefa;
@chrismademe
chrismademe / temporary-variables.js
Created July 4, 2020 20:30
Sometimes it can be tidier not to use temporary variables
// Sometimes it can be tidier not to use temporary variables :)
// Before
async render() {
let inputPath = path.join(__dirname, '/assets/css/style.scss');
let { sassOptions } = siteConfig || {};
const { css } = sass.renderSync({
file: inputPath,
...sassOptions,
@chrismademe
chrismademe / vs-code.json
Last active May 25, 2020 12:25
VS Code Settings
{
"workbench.iconTheme": "material-icon-theme",
"editor.fontFamily": "'JetBrains Mono', Menlo, Monaco, 'Courier New', monospace",
"editor.fontSize": 14,
"editor.lineHeight": 34,
"editor.formatOnSave": true,
"editor.fontLigatures": true,
"editor.minimap.enabled": false,
"editor.codeLens": false,
"workbench.startupEditor": "none",
@chrismademe
chrismademe / alpine-toggle.js
Last active May 15, 2020 13:31
AlpineJS Progressively Enhanced Checkbox
<div x-data="{ checked: false, ready: false }" x-init="ready = true" @click="checked = !checked" class="flex items-center space-x-2">
<button type="button" class="hidden" :class="{ 'flex bg-gray-300 rounded-full w-12 cursor-pointer border': ready, 'hidden': !ready }">
<div :class="{ 'bg-green-600 translate-x-6': checked, 'bg-gray-500': !checked }" class="pointer-events-none rounded-full w-6 h-6 transition duration-150 ease-in-out transform"></div>
</button>
<label class="flex items-center" for="remember_me">
<input :class="{ 'hidden': ready }" class="mr-2" type="checkbox" name="remember_me" x-bind:checked="checked">
<span>Remember Me</span>
</label>
</div>
@chrismademe
chrismademe / image-gallery.css
Created March 27, 2020 09:39
Image Gallery Web Component with FS Lightbox & CSS Grid