MemberPress: Generate All Invoices

function generate_bulk_invoices() { if( isset( $_REQUEST[ ‘generate-invoices’ ] ) ) { global $wpdb; $query = “SELECT id FROM {$wpdb->prefix}mepr_transactions WHERE status in (‘complete’, ‘confirmed’, ‘refunded’)”; $txn_ids = $wpdb->get_results( $query ); foreach( $txn_ids as $txn_id ) { $invoices = new MePdfInvoicesCtrl();…Continue reading

WooCommerce | Add currency below Total at checkout

function add_currency_below_total() { $currency = get_woocommerce_currency(); // Get currency code (e.g., USD, CAD, EUR) echo ‘ ‘ . __(‘Currency’, ‘woocommerce’) . ‘ ‘ . esc_html($currency) . ‘ ‘; } add_action(‘woocommerce_review_order_after_order_total’, ‘add_currency_below_total’);Continue reading

MemberPress: Enabling Payment Receipt Email for Free Recurring Subscriptions

function mepr_capture_recurring_sub( $event ) { // Get the transaction data from the event $txn = $event->get_data(); // Send the transaction receipt email MeprUtils::send_transaction_receipt_notices( $txn ); } // Attach the ‘mepr_capture_recurring_sub’ function to the ‘mepr-event-subscription-payment-completed’ event. add_action( ‘mepr_event_transaction_completed’, ‘mepr_capture_recurring_sub’ );Continue reading

MemberPress: Enabling Payment Receipt Email for Free Non-recurring Subscriptions

function mepr_capture_new_one_time_sub( $event ) { // Get the transaction data from the event $txn = $event->get_data(); // Send the transaction receipt email MeprUtils::send_transaction_receipt_notices( $txn ); } // Attach the ‘mepr_capture_new_one_time_sub’ function to the ‘mepr-event-non-recurring-transaction-completed’ event. add_action( ‘mepr_event_non_recurring_transaction_completed’, ‘mepr_capture_new_one_time_sub’ );Continue reading

Split Full Name at Checkout

document.addEventListener(‘DOMContentLoaded’, function () { // Select the First Name field var firstNameField = document.querySelector(‘#billing_first_name’); var lastNameField = document.querySelector(‘#billing_last_name’); if (firstNameField) { firstNameField.addEventListener(‘change’, function () { var fullName = firstNameField.value.trim(); var nameParts = fullName.split(‘ ‘); // Extract First Name and Last…Continue reading