Skip to content

Instantly share code, notes, and snippets.

@phlbnks
phlbnks / gform_clamav.php
Created August 8, 2016 17:21
Scan Gravity Forms uploads with ClamAV - WordPress
/**
* Scan Gravity Forms uploads with ClamAV
* Based on 'Custom Scan AV function by Kris Chase'
* https://krischase.com/detect-and-prevent-malware-in-gravity-forms-file-upload-with-php-clamav/
* Requires clamav and php-clamav installed and enabled
*/
function myfunc_uploads_clamav( $validation_result ) {
if ( $_FILES ) {
$form = $validation_result['form'];
#!/bin/bash -e
#
# Description:
# This will deploy WordPress in the current directory.
# Without modification it:
# - will configure basic security:
# - remove initial user created
# - deploy 6G firewall in .htaccess
# - attempt to prevent user enumeration in .htaccess
# - protect sensitive files and disallow executables in /wp-uploads
@phlbnks
phlbnks / phpcompatabilitychecker.sh
Last active February 9, 2023 14:52
Check directory for PHP version compatibility, no dependencies except bash, PHP, Wget and Tar
#!/bin/bash
# vars
default_workdir=~/phpcompatabilitytest
default_targetversion="8.1"
default_ignore="*/vendor/*,*/sites/*,*/tests/*"
default_testdir="/var/www"
phpcsconfigfile="CodeSniffer.conf"
# config
@phlbnks
phlbnks / gmail_oauth.sh
Created January 31, 2023 23:12
Script to generate OAuth token file for use with Google API, specifically with parsedmarc / dmarc-visualizer
#!/bin/bash
# Injest / setup vars // TODO: error handling needed
client_id=$( cat parsedmarc/credentials.json | jq -r '.installed.client_id' )
client_secret=$( cat parsedmarc/credentials.json | jq -r '.installed.client_secret' )
scope="https://www.googleapis.com/auth/gmail.modify"
echo
echo "This script will take your OAuth Desktop Application credentials.json and use it to get a token to interact with the API"
sleep 2
@phlbnks
phlbnks / wp.sh
Last active June 6, 2022 09:07 — forked from bgallagh3r/wp.sh
#!/bin/bash -e
clear
echo "============================================"
echo "WordPress Install Script"
echo "============================================"
echo "Do you need to setup new MySQL database? (y/n)"
read -e setupmysql
if [ "$setupmysql" == y ] ; then
echo "MySQL Admin User: "
read -e mysqluser
@phlbnks
phlbnks / wp_helper.sh
Last active April 16, 2021 18:02
Utility script to help manage WordPress sites on an EasyEngine server (but not limited to EE)
#!/bin/bash
# Help / usage info.
USAGE=$'WordPress Helper script, built for EasyEngine but should be widely compatible.\nWithout any args it will search /var/www/ for WordPress sites, loop over them in alphabetical order and check for core and plugin updates.\nAlso accepts:\n\t--sites=[space seperated list of site paths relative to /var/www]\n\t--update=[plugins|wp|all].'
# Die function for exiting on errors.
die () {
echo "${1}, exitting..." >&2 ; echo ; exit 1
}
@phlbnks
phlbnks / products_with_category.sql
Last active December 18, 2020 23:11
Select Product name, SKU, price and category from WordPress / WooCommerce with MySQL query
SELECT
wp_posts.post_title AS Product,
wp_postmeta1.meta_value AS SKU,
wp_postmeta2.meta_value AS Price,
GROUP_CONCAT( wp_terms.name ORDER BY wp_terms.name SEPARATOR ', ' ) AS ProductCategories
FROM wp_posts
LEFT JOIN wp_postmeta wp_postmeta1
ON wp_postmeta1.post_id = wp_posts.ID
AND wp_postmeta1.meta_key = '_sku'
LEFT JOIN wp_postmeta wp_postmeta2
@phlbnks
phlbnks / social.php
Created August 2, 2019 11:19
Basic social OG tag generation for WordPress
<?php
/**
* Plugin Name: Social Test
*
* TODO: Output <meta name="twitter:site" content="@username" />? Needs custom option to read from.
* TODO: Custom option for social fallback image instead of core image?
*/
/**
* Adding the Open Graph schema definitions in the Language Attributes.
@phlbnks
phlbnks / time_ago.php
Last active February 3, 2020 10:33
Filter WordPress date functions to return relative time strings.
/**
* Filter the_time and get_the_date to return a relative string.
* Inspired by http://www.jasonbobich.com/2011/04/10/a-better-way-to-add-time-ago-to-your-wordpress-theme/
* Based on code from https://buddypress.trac.wordpress.org/browser/tags/2.8.2/src/bp-core/bp-core-functions.php#L1118
*
* @param string $formatted The formatted time.
* @param string $format The time format used.
* @param object $the_post Optional - current Post object.
* @return string Modified formatted time.
*/
@phlbnks
phlbnks / conflict.sh
Created November 28, 2019 16:04
Git merge conflict test generator
#!/bin/bash
# No conflict, changes in branch time order.
mkdir merge-conflict1
cd merge-conflict1
git init
touch test1.sh
git add test1.sh
echo $'Start\nOne\n\n\n\nTwo\n\n\n\nThree\n\n\n\nFour\n\n\n\nEnd' > test1.sh
git commit -am 'initial commit on master test1.sh'