Skip to content

Instantly share code, notes, and snippets.

View bhwebworks's full-sized avatar

John Sundberg bhwebworks

View GitHub Profile
/* Convert the standard WooCommerce products list into a modern responsive grid. */
ul.products {
--grid-gap: 32px;
--auto-grid-min-size: 200px;
grid-template-columns: repeat(auto-fill, minmax(var(--auto-grid-min-size), 1fr));
grid-gap: var(--grid-gap);
display: grid;
}
ul.products:before{
content:unset!important;
@bhwebworks
bhwebworks / postmark-webhooks.php
Last active April 25, 2023 19:26
Automatic bounce and complaint management using Postmark to send MailPoet (and other) emails
add_action( 'admin_post_nopriv_process_postmark_events', 'bhww_core_postmark_events_webhook' );
/**
* Add a webhook to enable automated MailPoet bounce (or spam complaint or unsubscribe)
* handling from Postmark events JSON data
*
* Change this webhook URL for each site, and copy/paste into Postmark Webhook URL form:
* https://[YOUR WEBSITE URL]/wp-admin/admin-post.php?action=process_postmark_events
*
* Make sure there is not an admin redirect active,
* or if there is, modify it to allow webhook access
<?php
/**
* Gravity Wiz // Gravity Forms // User Registration // Skip Registration if Email Exists
*
* If submitted email is already registered, skip registration.
*
* @version 0.4
* @author David Smith <david@gravitywiz.com>
* @license GPL-2.0+
@bhwebworks
bhwebworks / remove-woo-scripts.php
Created April 11, 2020 21:59 — forked from jan-koch/remove-woo-scripts.php
Remove WooCommerce related resources except on WooCommerce-based pages (products, cart, checkout, etc). Use on a testing environment before pasting this into your live website!
/**
* This code snippet removes JavaScript and CSS files loaded from WooCommerce if they are not necessary.
*
* Please test this on a staging copy of your website before putting this into the functions.php of your live website.
*/
add_action( 'wp_enqueue_scripts', 'my_remove_woo_assets', 99 );
function my_remove_woo_assets() {
if ( function_exists( 'is_woocommerce' ) ) { // Check if Woo is installed.
if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) { // Only run on non-Woo pages.
// Remove unnecessary stylesheets.
@bhwebworks
bhwebworks / all_fields_extra_options.php
Created December 1, 2016 02:59
The Gravity Forms {all_fields} merge tag in notifications includes all fields which had data entered, it doesn't include HTML fields, Section Break descriptions, nor does it allow you to omit fields from the notification. By adding the following code to your themes functions.php file you will gain the ability to include HTML fields, and Section …
/**
* to exclude field from notification add 'exclude[ID]' option to {all_fields} tag
* 'include[ID]' option includes HTML field / Section Break field description / Signature image in notification
* see http://www.gravityhelp.com/documentation/page/Merge_Tags for a list of standard options
* example: {all_fields:exclude[2,3]}
* example: {all_fields:include[6]}
* example: {all_fields:include[6],exclude[2,3]}
*/
add_filter( 'gform_merge_tag_filter', 'all_fields_extra_options', 11, 5 );
function all_fields_extra_options( $value, $merge_tag, $options, $field, $raw_value ) {
// Execute late to catch 'clone' and 'new draft' (Duplicate Post plugin)
add_filter( 'post_row_actions', 'bhww_core_remove_quick_edit_options', 100, 2 );
add_filter( 'page_row_actions', 'bhww_core_remove_quick_edit_options', 100, 2 );
function bhww_core_remove_quick_edit_options( $actions, $post ) {
if ( current_user_can( 'update_core' ) )
return $actions;
global $post;
@bhwebworks
bhwebworks / Redirect specific WordPress pages or posts to https.php
Last active December 12, 2017 00:14
Redirect specific WordPress pages or posts to https
/**
* Redirect specific pages or posts to https
*
* This code assumes the page/post ID to make https is 7000.
* You will need to change that ID to match your site.
*
* @link http://blackhillswebworks.com/?p=5088
*/
add_action( 'template_redirect', 'bhww_front_end_ssl_template_redirect', 2 );
@bhwebworks
bhwebworks / filter-mailpoet-tags-not-being-stripped.php
Last active January 18, 2016 14:20
Filter MailPoet tags not being stripped
/**
* Filter MailPoet tags not stripped out of emails - add table tags
*
* Located in wysija-newsletters/helpers/articles.php
*
* @link http://blackhillswebworks.com/?p=5648
*/
add_filter( 'mpoet_strip_tags_ignored', 'bhww_core_mailpoet_filter_tags_not_being_stripped' );
@bhwebworks
bhwebworks / Modified pseudo-responsive MailPoet email_template.html
Created March 27, 2015 22:12
Modified pseudo-responsive MailPoet email_template.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" {if #is_rtl} dir="rtl" {/if} >
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>{#subject|default:Wysija template}</title>
{#css}
</head>
<body bgcolor="{#styles.html.background|color}" yahoo="fix">
<span style="margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;display:block;background:{#styles.html.background|color};">
@bhwebworks
bhwebworks / Modified MailPoet css.html
Created March 27, 2015 22:10
Modified MailPoet css.html - responsive images and larger table font size
<style type="text/css">
/* Based on The MailChimp Reset INLINE: Yes. */
/* Client-specific Styles */
body {
width:100% !important;
-webkit-text-size-adjust:100%;
-ms-text-size-adjust:100%;
margin:0;
padding:0;
}