Skip to content

Instantly share code, notes, and snippets.

View andrewlimaza's full-sized avatar

Andrew Lima andrewlimaza

View GitHub Profile
@andrewlimaza
andrewlimaza / show-order-status-pmpro-pdf.php
Created December 11, 2024 05:44
Show order/invoice status in PMPro PDF
<?php
/**
* Add custom variables to PDF template editor to show some more order information.
* To add this code to your site, please visit - https://yoohooplugins.com/customize-wordpress/
*/
function my_pmpro_pdf_status_details( $data_array, $user, $order_data ) {
$data_array['{{order_status}}'] = esc_html( $order_data->status );
return $data_array;
}
add_filter( 'pmpro_pdf_invoice_custom_variables', 'my_pmpro_pdf_status_details', 10, 3 );
@andrewlimaza
andrewlimaza / move-pmpro-content-higher.php
Created December 2, 2024 07:44
Move the content restricted message higher up the course content for LifterLMS
<?php
/**
* Move the Paid Memberships Pro content restricted message higher up in LifterLMS course content.
* This requires "Course Information" block to be on the page and shown before this using jQuery.
* Tweak this jQuery code to fit your needs and move the content higher up.
*
* To add the code to your site you may follow this guide - https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
function my_move_pmpro_div_with_jquery_llms() {
?>
@andrewlimaza
andrewlimaza / filter-pmpro-login-url.php
Created November 28, 2024 13:11
Filter the PMPro Login URL for sites.
<?php
/**
* Adjust the login URL value that PMPro uses and override it to use a custom one.
* Use this to force the login URL even if the frontend URL page is set.
* You can tweak this further based on current page, condtionals and more. This is a starting point.
* To add this code to your site follow this guide - https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
function my_pmpro_login_url( $login_url, $redirect, $reauth ) {
$login_url = '/login'; // Change the slug of this.
@andrewlimaza
andrewlimaza / pmpro-flat-tax-rate-all-orders.php
Created November 28, 2024 07:18
Flat rate 15% VAT/TAX added to all PMPro orders and checkouts
<?php
/**
* Add 15% tax to all PMPro checkouts.
* Add this code to your site by visiting this guide - https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
function customtax_pmpro_tax( $tax, $values, $order ) {
$tax = round((float)$values['price'] * 0.15, 2);
return $tax;
}
add_filter("pmpro_tax", "customtax_pmpro_tax", 10, 3);
@andrewlimaza
andrewlimaza / ccbill-sub-account-pmpro-checkout.php
Created November 22, 2024 08:09
Adjust CCBill Sub Account for Paid Memberships Pro Checkouts
<?php
/**
* Change the CCBill Sub Account for AddOn Package purchase.
* This can be tweaked further to change the subaccount (or any other argument) based on custom conditionals.
*
* REQUIRES PMPRO CCBILL 0.6+
* Add this code to your site by following this guide - https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
function my_pmpro_ccbill_change_sub_account( $ccbill_args, $order ) {
// Let's replace the subaccount when we get AddOn Package purchase.
@andrewlimaza
andrewlimaza / remove-email-validation-on-certain-pages.php
Created November 6, 2024 06:52
Remove Email Validation checks on Edit Member and Frontend Edit Profile page to allow updating of User Fields.
<?php
/**
* Removes the email validation checks on the Edit Member and Frontend Edit Profile pages.
* This allows pending validation members to edit their own User Fields.
* This is only needed if the "Restrict Fields For Membership Levels" option is selected.
*
* Add this code to your site by following this guide - https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
function my_pmpro_email_bypass_validation_frontend() {
global $pmpro_pages;
@andrewlimaza
andrewlimaza / pmpro-min-age-checkout.php
Created November 5, 2024 08:02
Require accounts to be 18 years or older, in order to checkout and signup for a membership level.
<?php
/**
* Require age verification before being able to signup for a membership level.
* Create a Date field in User Fields and rename the $dob_field_name and adjust the $min_age values.
* This supports PMPro V3.2+ and has backwards compatibility, please read the comments.
*
* To add this customization to your site, please follow this guide - https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
function my_pmpro_min_required_age( $okay ) {
@andrewlimaza
andrewlimaza / user-fields-required-pmpro.php
Created November 4, 2024 07:02
Make User Fields required on the Edit User Profile Page for Paid Memberships Pro
<?php
/**
* This gist makes all the User Fields listed below in each if statement required.
* Only save the user's profile when all fields are submitted and not 0 values.
* Add this code to your site by following this guide - https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
function my_pmpro_make_profile_fields_required( &$errors, $update = null, &$user = null ) {
// Validate the custom User Fields.
if ( empty( $_REQUEST['last_name'] ) ) {
@andrewlimaza
andrewlimaza / pmpro-group-accounts-wp-menu-dynamic-link.php
Last active November 18, 2024 19:19
Create dynamic "Manage Account" link to be used in WordPress Menus for Paid Memberships Pro Group Accounts
@andrewlimaza
andrewlimaza / replace-pmpro-social-login-checkout-text.php
Created September 20, 2024 07:18
Replace PMPro Social Login checkout text.
<?php
/**
* Replace the checkout text for PMPro's Social Login Add On.
* Follow this guide to add custom code to your site - https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
function my_pmpro_social_login_text_replace( $translated_text, $text, $domain ) {
// Check if the domain and text match the target string
if ( $domain === 'pmpro-social-login' ) {
if ( $text === 'Click here to login, create a username and password' ) {