Skip to content

Instantly share code, notes, and snippets.

View kasparsd's full-sized avatar

Kaspars Dambis kasparsd

View GitHub Profile
@kasparsd
kasparsd / render.php
Created April 14, 2025 12:53
Render template of a login-logout block for WordPress
<?php
/**
* Render the login/logout block.
*
* @param array $attributes Block attributes.
* @param string $content Block content.
* @param array $block Block instance.
*/
$link = [
@kasparsd
kasparsd / 000-redirect-logger.php
Last active March 28, 2025 02:02
A must-use plugin to log and find the source of redirects in WordPress
<?php
/**
* Plugin Name: Redirect Logger
* Description: Find the source of all redirects.
*
* Place this in the mu-plugins directory and check the
* redirects-1234567.json file in the uploads directory for the logs.
*/
namespace WPElevator\Redirect_Logger;
@kasparsd
kasparsd / wp-encrypted.php
Created March 19, 2025 09:55
Initial draft
<?php
abstract class WP_Encrypted_Secret_Method {
protected WP_Encrypted_Secret_Storage $storage;
public function __construct( WP_Encrypted_Secret_Storage $storage ) {
$this->storage = $storage;
}
abstract public function is_supported(): bool;
<?php
namespace YourVendor\Project;
class Config {
private static array $config = [];
private function __construct() {
// Private constructor to prevent direct instantiation
}
<?php
namespace YourVendor\WooCommerce_CLI;
use WP_CLI;
use WooCommerce;
function anon_orders( $args, $assoc_args ) {
$order_ids = wc_get_orders(
[
proxy_cache_path /var/cache/cf-images levels=1:2 keys_zone=CF_IMAGES:10m inactive=7d max_size=10MB;
server {
# ... here goes the rest of your config.
# Proxy example.com/cfimg/original/path/image.jpg?cf=width=100,quality=80
# to example.com/cdn-cgi/image/width=100,quality=80/original/path/image.jpg
location ~* ^/cfimg/(.*)$ {
resolver 1.1.1.1;
@kasparsd
kasparsd / cloudflare-image-server.php
Created February 12, 2025 07:30
Cloudflare Image API mock WordPress plugin
<?php
/**
* Plugin Name: Cloudflare Image API Mock
* Description: Replicate Cloudflare Image API functionality locally.
*
* IMPORTANT: The code below shouldn't be used on production since the
* image path resolution is vulnerable to directory traversal attacks.
*/
add_action(
<?php
// See https://x.com/PoeHaH/status/1875290205894164758
function run_times( callable $callback, int $runs ) {
$start = microtime(true);
for ($i = 0; $i < $runs; $i++) {
$callback();
}
return microtime(true) - $start;
}
@kasparsd
kasparsd / wp-zips.md
Last active November 21, 2024 11:47
WordPress package ZIP structure and contents

WordPress core, plugin and theme ZIP structure

WordPress core:

wget https://wordpress.org/latest.zip
unzip -l latest.zip | head
Archive:  latest.zip
  Length      Date    Time    Name
---------  ---------- -----   ----

0 11-12-2024 22:43 wordpress/

@kasparsd
kasparsd / commit-msg.php
Created October 18, 2024 09:20
Git hook commit-msg script to enforce Conventional Commits
<?php
$commit_message = file_get_contents( $argv[1] );
$is_common_commit = preg_match(
'/^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test){1}(\([\w\-\.,\|\:]+\))?(!)?:\s?([\w ])+([\s\S]*)/m',
$commit_message,
$matches
);