Skip to content

Instantly share code, notes, and snippets.

View kimwhite's full-sized avatar

Kim White kimwhite

View GitHub Profile
@kimwhite
kimwhite / logout_url_redirect_pmpro.php
Last active June 26, 2025 18:00 — forked from JarrydLong/logout_url_redirect_pmpro.php
Redirect logout to PMPro login page.
<?php
// Copy from below here...
/*
* Redirect logout to custom page with slug 'logout'.
*/
function my_logout_url_redirect_custom( $logout_url ) {
$redirect_url = home_url( '/logout/' ); // Adjust slug if needed
$logout_url = add_query_arg( 'redirect_to', urlencode( $redirect_url ), $logout_url );
@kimwhite
kimwhite / banner-expired-membership.php
Last active June 20, 2025 12:26 — forked from ipokkel/banner-expired-membership.php
Display a notification banner for members with an expired membership. #paid-memberships-pr #pmpro
<?php
/**
* Display a renewal reminder notification banner at the top of your website
* for members whose Level 10 membership has expired. Change Line 62 to your level ID
* Edit Line 65 with your custom message and link. Update CSS to your colors etc.
*
* You can add this recipe to your site by creating a custom plugin
* or using the Code Snippets plugin available for free in the WordPress repository.
* Read this companion article for step-by-step directions on either method.
* https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
<? php
/**
* Restrict post access to specific user IDs or user Roles.
*
* You can add this recipe to your site by creating a custom plugin
* or using the Code Snippets plugin available for free in the WordPress repository.
* Read this companion article for step-by-step directions on either method.
* https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
/**
<?php //do not copy
/**
* Gets the next payment date and marks that as the expiration date for users.
*
* The "next payment" value is an estimate based on the billing cycle of the subscription and the last order date. It may be off from the actual recurring date set at the gateway, especially if the subscription was updated at the gateway.
*
* Remove the // on line 40 to run the update query.
*
* Add /wp-admin/?set_expiration_dates=true to your URL to run.
*
<?php // do not copy
/**
* This recipe will display a list of pages/posts that are protected by adding the shortcode `[mypmpro_display_posts]` to a page.
*
* You can add this recipe to your site by creating a custom plugin
* or using the Code Snippets plugin available for free in the WordPress repository.
* Read this companion article for step-by-step directions on either method.
* https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
@kimwhite
kimwhite / add_username_hint_at_checkout.php
Last active March 24, 2025 15:47 — forked from dparker1005/add_username_hint_at_checkout.php
Adds a hint under the "Username" field at checkout.
<?php // do not copy this line.
/**
* This recipe Adds a placeholder hint inside the "Username" field at checkout.
*
* You can add this recipe to your site by creating a custom plugin
* or using the Code Snippets plugin available for free in the WordPress repository.
* Read this companion article for step-by-step directions on either method.
* https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
@kimwhite
kimwhite / my-pmpro-group-account-fix.php
Last active March 18, 2025 13:11
This recipe Adjusts the priority of the Group Account hook on the pmpro_checkout_level filter.
<?php // do not copy this line
/**
* Adjust Group Account Hook Priority for Compatibility with Auto-Renewal Checkbox Add On
*
* This recipe modifies the priority of the Group Account hook on the `pmpro_checkout_level` filter.
* Resolves a conflict when using the Auto-Renewal Checkbox Add On with a Group Leader Account
* to ensure proper functionality at checkout.
*
* For use when using both:
* - Group Accounts Add On: https://www.paidmembershipspro.com/add-ons/group-accounts/
@kimwhite
kimwhite / set-initial-price-for-members.php
Last active February 28, 2025 14:10 — forked from andrewlimaza/set-initial-price-to-0-for-members.php
Set the initial amount to $0 for existing members.
<?php
/**
* Set the initial price to xxx for members only, for specific levels.
*
* Add this code to your site by following this guide - https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
function my_pmpro_adjust_initial_amount( $level ) {
// Define different prices for specific levels
$level_prices = array(
@kimwhite
kimwhite / my-pmpro-show-specific-countries.php
Last active February 28, 2025 12:40 — forked from ipokkel/my-pmpro-remove-non-default-countries.php
Show specific Country in Billing address Drowndown
<?php
/**
* This recipe is an example of how to keep only specific countries in the dropdown.
* and remove all other countries from the "Country" dropdown select.
*
* The PMPro default country is "US" (United States), to set
* your custom default country, please refer to this article.
* @link https://www.paidmembershipspro.com/change-the-default-country-of-your-membership-website/
*
* For available countries and their shortcode see:
@kimwhite
kimwhite / allow_or_deny_checkout_on_restricted_countries.php
Last active February 27, 2025 12:39 — forked from MaximilianoRicoTabo/allow_or_deny_checkout_on_restricted_countries.php
This gist works over a list of a countries and levels. It restricts the checkout to certain levels to certain countries. Either denying or Allowing
<?php // do not copy this line.
/**
* This recipe allow or deny the checkout of a level to certain countries.
* Modify $restriction_mode to use 'deny' or 'allow'. Modify $restricted_countries using level ids as keys and country codes as values.
*
* You can add this recipe to your site by creating a custom plugin
* or using the Code Snippets plugin available for free in the WordPress repository.
* Read this companion article for step-by-step directions on either method.
* https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/