Skip to content

Instantly share code, notes, and snippets.

View KZeni's full-sized avatar

Kurt Zenisek KZeni

View GitHub Profile
@KZeni
KZeni / freemius-killer.php
Last active October 26, 2024 14:40 — forked from thefrosty/freemius.php
Freemius Killer: A WordPress plugin that keeps your site lightweight by preventing the Freemius middleware from ever coming into play. Best when running Freemius' own "Freemius Fixer" plugin while this is enabled to purge existing Freemius data while this keeps it away. *NOTE:* This plugin manually specifies the plugins that use Freemius to then…
<?php
// REQUIRED: Make sure to edit the last few lines to assign the global variable that any particular Freemius/FS-enabled plugin wants to use to have this intercept it (if not already included below.)
// Please, any revisions for **adding more plugin to be supported by default** and/or better accommodating things are welcome at: https://gist.github.com/KZeni/7afbd8b9a94c23aa0a9133d4ce767d0b
// One would like to think this could grow to automatically intercept all plugins trying to use Freemius, but manual editing & updating a gist (maybe eventually getting to the point of being a plugin with automatic updates [be it via a WP.org plugin listing, its own built-in updater like PUM, GitHub repo where sites have plugins check a repo for new releases, etc.])
// Based on: https://gist.github.com/thefrosty/d9bb001c05a407ba1aaa60c8b75aeb43 (via https://austin.passy.co/2024/disable-freemius-in-wordpress-plugins/)
declare(strict_types=1);
/**
* Create an override function, as to bypass Freemius in plugins that in
@KZeni
KZeni / wordpress-password-reset-unmultisite.php
Last active May 6, 2024 16:56 — forked from eteubert/wordpress-passwort-reset-unmultisite.php
Multisite: Password Reset on Local Blog
<?php
/**
* Plugin Name: Multisite: Password Reset on Local Blog
* Plugin URI: https://gist.github.com/KZeni/7760876c01ebb681ad439a452dc64427
* Description: By default, WordPress Multisite uses the main blog for password resets. This plugin enables users to stay in their blog during the whole reset process.
* Version: 1.1.1
* Author: Eric Teubert + KZeni
* Author URI: https://gist.github.com/KZeni/7760876c01ebb681ad439a452dc64427
* License: MIT
*/
// Fancybox Lightbox
//$('a[href^="#"][href$="-bio"]').attr('data-fancybox', '').attr('data-selectable', 'true').attr('data-type', 'inline');
$('a[href*="youtu.be"],a[href*="youtube.com/watch?v="]').attr('data-fancybox', '').attr('data-width', '1280').attr('data-height', '720'); // Catch links to YouTube videos, but don't catch normal YouTube.com links (links to channel, etc.) Give them a width & height (720p) (while it's then mobile-responsive & also doesn't take up the whole screen [offering its own fullscreen option if they want to see it bigger.])
//$('.event-bio').attr('data-selectable', 'true');
// $('a[href*=".pdf"],a.pdf,.pdf a').each(function () {
// // Make PDFs scrollable on mobile devices via PDF.js
// if (location.hostname === this.hostname || !this.hostname.length) {
// // Make sure the file is being served from an external site (avoid origin issues from trying to load that content via JS)
// $(this)
// .attr('href', '/wp-content/themes/brit/pdfjs/web/viewer.html?file=' + $(this).attr('
@KZeni
KZeni / functions.php
Last active June 27, 2022 16:57
Add start date from The Events Calendar to Display Posts plugin's output
<?php
/**
* Add custom fields to Display Posts Shortcode
* @author Bill Erickson
* @link http://wordpress.org/extend/plugins/display-posts-shortcode/
* @link http://www.billerickson.net/shortcode-to-display-posts/comment-page-1/#comment-4565
*
* @param $output string, the original markup for an individual post
* @param $atts array, all the attributes passed to the shortcode
* @param $image string, the image part of the output
@KZeni
KZeni / rpwe-add-time.php
Created March 29, 2022 06:23
Add Time to Recent Post Widgets Extended (RPWE) WordPress plugin output (uses Simple HTML DOM PHP [1.9.1 here] to aid in the HTML traversing & insertion])
<?php
// Add Simple HTML DOM for PHP-based HTML/DOM Traversal
if(!function_exists('str_get_html')){
include 'include/simple_html_dom.php';
}
// Add Time info to Recent Post Widgets Extended output (add after date)
function add_time_to_rpwe_markup($html,$args){
$html = str_get_html($html);
foreach($html->find('.rpwe-title a') as $title_link){
@KZeni
KZeni / rpwe-add-author.php
Created March 29, 2022 06:11
Add Post Author to Recent Post Widgets Extended (RPWE) WordPress plugin output (uses Simple HTML DOM PHP [1.9.1 here] to aid in the HTML traversing & insertion])
<?php
// Add Simple HTML DOM for PHP-based HTML/DOM Traversal
if(!function_exists('str_get_html')){
include 'include/simple_html_dom.php';
}
// Add Author info to Recent Post Widgets Extended output (add before date)
function add_author_to_rpwe_markup($html,$args){
$html = str_get_html($html);
foreach($html->find('.rpwe-title a') as $title_link){
// Force the Name field in the Event Ticket (Plus) ticket attendee information is unique (which may be intentionally hidden [which makes this even more important since you can see/fix the issue of the name fields needing to be unique per Event Tickets for The Events Calendar, currently & oddly.])
function makeEventTicketAttendeeNamesUnique() {
$('.tribe-tickets__iac-field--name .tribe-tickets__form-field-input').each(function (i) {
if (!$(this).hasClass('duplicate-prevented')) {
var originalValue = $(this).val();
$(this).val(originalValue + ' #' + (i + 1));
$(this).addClass('duplicate-prevented');
}
});
}
@KZeni
KZeni / kurtzenisek_id_rsa.pub
Created January 29, 2021 20:45
kurtzenisek_id_rsa.pub / kurtzenisek_authorized_keys (Public SSH/SFTP/etc. key for kurtzenisek)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDALsG2QVvkcAl17quJAS1SsYLdgIZ9VPPJVMZQl8FxQA2/baxS5FmReB3LK8ljTB0FLrGCmWNKGiiWG/7l2gtC4rlV0RGAwNz4+AIhS938u/WDimB6A6IIK5zMYHYs90rGARPOegD+tdxYhmAvol97o+XvN248j/e0Lu+sO+cDbnXBe1vSIIpznRHtluISPyWiPX2xlDpIWMkfr4IdMgaCMub766hqsi7pYJv2GqwNm0hwTlJjBNpbzrV5Dr38fNCXed5cIWoaJeB3UC98OMi+D08qgXpTIzSq4oWKz2nA8KNZVvPkqkCG9JrHj9pGsvJw+0O4RWrgYja+kySi5vkx
@KZeni
KZeni / edit-1.md
Last active October 20, 2020 20:58
Gravity Forms - Prevent truncating list of choices on radio & checkbox fields on editor views

gravityforms/includes/fields/class-gf-field-radio.php has:

if ( $is_form_editor && $count >= 5 ) {
	$editor_limited = true;
	break;
}

changed into:

$gf_radio_field_editor_choice_limit = apply_filters( 'gf_radio_field_editor_choice_limit', 5); // Default to 5 being the limit but allow a different value to be specified via filter
@KZeni
KZeni / gf-auto-populate-save-continue-email.php
Last active September 11, 2020 20:14
Gravity Forms auto-populate Save and Continue Later email field with the current user's email address Based on https://docs.gravityforms.com/gform_pre_process/#4-use-a-form-field-as-email-for-the-save-and-continue-confirmation via https://www.gravityforms.com/gravity-forms-v1-9-save-continue/#comment-23296. Call via functions.php or include inline.
<?php
// Auto-populate Save and Continue Later email field with the current user's email address (on all forms per `gform_pre_process`. Otherwise `gform_pre_process_2`, etc. can be used for specific forms by specifying the ID at the end of the action name. Based on https://docs.gravityforms.com/gform_pre_process/#4-use-a-form-field-as-email-for-the-save-and-continue-confirmation via https://www.gravityforms.com/gravity-forms-v1-9-save-continue/#comment-23296)
// See https://gist.github.com/KZeni/180b2d7378bc6f9fc96da4fa29334709 for latest snippet
add_action( 'gform_pre_process', function ( $form ) {
if ( rgpost( 'gform_save' ) ) {
global $current_user;
get_currentuserinfo();
$current_user_email = $current_user->user_email;
$resume_email = isset( $_POST['gform_resume_email'] ) ? $_POST['gform_resume_email'] : $current_user_email; // Use the supplied resume email if one was specified; otherwise, use the current user's email address as the fallback.
$_POST['gform_resume_email'] = $resume_email;