Skip to content

Instantly share code, notes, and snippets.

View greenhornet79's full-sized avatar
👽
Craft

Jeremy Green greenhornet79

👽
Craft
View GitHub Profile
<?php
add_filter('leaky_paywall_account_setup_validation', 'zeen_validate_email_blacklist', 20, 2 );
function zeen_validate_email_blacklist($errors, $fields)
{
// edit to the domains/strings you would like to block from registering
$blacklist = array(
'gmail',
<?php
add_action('leaky_paywall_before_create_stripe_subscription', 'endo_handle_product_for_recurring_checkout', 20, 2);
function endo_handle_product_for_recurring_checkout($customer, $fields) {
$stripe = leaky_paywall_initialize_stripe_api();
try {
$invoice_item = $stripe->invoiceItems->create([
<?php
// Send an email to the subscriber when Authorize.net sends a net.authorize.customer.subscription.expired webhook event
// Notice the action is the event name, with the periods changed out for underscores
// Any event can be accessed that way
add_action('leaky_paywall_net_authorize_customer_subscription_expired', 'zeen_send_expired_notice', 10, 2);
function zeen_send_expired_notice($user, $webhook_data)
{
<?php
add_filter('leaky_paywall_new_email_message', 'zeen_maybe_update_email_message', 99, 2);
function zeen_maybe_update_email_message($message, $user_id) {
$user = get_user_by( 'ID', $user_id );
$transaction_id = leaky_paywall_get_transaction_id_from_email( $user->user_email );
$transaction = get_post($transaction_id);
<?php
add_action('leaky_paywall_update_subscriber', 'zeen_update_hubspot_after_sub_update', 10, 5);
function zeen_update_hubspot_after_sub_update($user_id, $email, $meta, $customer_id, $meta_args)
{
$data['properties']['firstname'] = $meta_args['first_name'];
$data['properties']['lastname'] = $meta_args['last_name'];
$data['properties']['level_id'] = $meta['level_id'];
<?php
add_filter('leaky_paywall_hubspot_create_contact_data', 'zeen_add_more_data_to_hubspot', 10, 2);
function zeen_add_more_data_to_hubspot( $data, $subscriber_data ) {
// get the subscriber's level id
$level_id = absint($subscriber_data['level_id']);
// Append the level id to the level_id custom property
<?php
add_filter('leaky_paywall_block_active_sub_to_group', 'endo_add_active_sub_to_group', 10, 2 );
function endo_add_active_sub_to_group($block_active_sub_to_group, $user) {
$level_id = leaky_paywall_subscriber_current_level_id( $user );
if ( !is_numeric( $level_id ) ) {
<?php
add_action('bulk_add_leaky_paywall_subscriber', 'zeen_send_welcome_email_after_import', 10, 2);
function zeen_send_welcome_email_after_import($user_id, $meta)
{
add_filter('leaky_paywall_send_new_admin_email', fn($status) => false ); // disable admin email from being sent
leaky_paywall_email_subscription_status($user_id, 'new', $meta);
<?php
add_filter('leaky_paywall_send_new_email', 'zeen_filter_send_emails', 10, 2 );
function zeen_filter_send_emails( $send, $user_id ) {
$mode = leaky_paywall_get_current_mode();
$site = leaky_paywall_get_current_site();
$level_id = get_user_meta($user_id, '_issuem_leaky_paywall_' . $mode . '_level_id' . $site, true);
<?php
$visibility = get_post_meta(get_the_ID(), '_issuem_leaky_paywall_visibility', true );
$current_user_level_id = leaky_paywall_subscriber_current_level_id();
if ( isset($visibility['visibility_type'] ) && $visibility['visibility_type'] == 'always' && $visibility['always_visible'][0] == -1 ) {
$show_to_everyone = true;
} else {
$show_to_everyone = false;
}