Skip to content

Instantly share code, notes, and snippets.

View apermo's full-sized avatar

Christoph Daum apermo

View GitHub Profile
@apermo
apermo / anonymize_users.php
Created April 20, 2025 17:30
Anonymizing WordPress Database
<?php
/**
* Plugin Name: User Migration CLI Command (MU)
* Author: Christoph Daum
* Author URL: https://christoph-daum.com
* Description: Adds a WP-CLI command 'migrate' to anonymize user data, reset passwords, and update meta.
*
* Version: 1.0
* License: GPL2
*/
<?php
/**
* This is a snippet if your WordPress plugin uses composer autoloading.
*
* Instead of just dying, it will fail gracefully and add an admin notice to the backend,
* informing the dev to run the autoloader.
*
* Could also be adjusted to check for other things like a /build/ folder or similar things.
*
<?php
add_filter( 'heartbeat_settings', 'filter_heartbeat', 10, 1 );
/**
* Filter the heartbeat interval based on the current request.
*
* Called on the 'heartbeat_settings' filter.
*
* @param array $settings The Heartbeat settings. By Default an empty array.
*
<?php
/**
* A class to create custom tables within WordPress.
*
* @version 1.0.0
*/
namespace apermo\WPTools;
use Exception;
@apermo
apermo / category_mover.php
Created November 11, 2021 11:14
Bulk move and delete Categories in WordPress
<?php
if ( ! defined( 'PHP_SAPI' ) || PHP_SAPI !== 'cli' ) {
exit( 'You shall not pass' );
// echo '<pre>';
// set_time_limit( 0 );
}
$dir = $argv[1] ?? __DIR__;
// Load wp-config to make sure we can use WordPress.
@apermo
apermo / session-debugger.php
Created November 4, 2021 07:03
Simple WordPress User Session debugger
<html>
<head>
<style type="text/css">
textarea {
width: 100%;
height: 300px;
}
td {
border: 2px dashed grey;
padding: 1em;
@apermo
apermo / mu-redirect.php
Created October 27, 2021 09:37
Timed redirect MU Plugin for WordPress
<?php
/**
* Plugin Name: Timed redirect
* Description: Redirects all traffic to [hardcoded domain] starting [hardcoded time]
* Version: 1.0.0
* Author: Christoph Daum
*/
// Mind possible UTC time differences here.
@apermo
apermo / create_admin.php
Created September 8, 2021 10:11
Self Destructing Create Admin User for WordPress
<?php
require_once 'wp-config.php';
// Add your desired credentials here. Using these is a super bad idea.
//$user = 'YOUR USERNAME';
//$pass = 'YOUR_SUPER_SECURE_PASSWORD';
//$email = 'YOUR@ADMIN_EMAIL.ADDRESS';
if ( ! username_exists( $user ) && ! email_exists( $email ) ) {
@apermo
apermo / selfdesctruct_info.php
Last active March 27, 2025 12:15
A small snippet around the phpinfo(); to have a self destructing phpinfo that deletes itself if older than one hour.
<?php
// File is older than 1 hour, better delete this.
if ( filemtime( __FILE__ ) + 3600 < time() ) {
unlink( __FILE__ );
header( "HTTP/1.0 404 Not Found" );
exit();
}
phpinfo();
<?php
/**
* Contains Class Settings_Abstract
*/
if ( ! defined( 'ABSPATH' ) ) {
header( 'HTTP/1.0 404 Not Found' );
exit( 'You shall not pass' );
}