Skip to content

Instantly share code, notes, and snippets.

@rickalday
rickalday / free_custom_export_users.php
Created June 29, 2026 19:54
Export WP Users with custom fields
<?php
function free_custom_export_users() {
if ( isset( $_GET['export_my_users'] ) && current_user_can( 'manage_options' ) ) {
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=users_export.csv');
$output = fopen('php://output', 'w');
// Define your column headers here (Add your custom field names)
@rickalday
rickalday / custom_address_fields.php
Last active June 29, 2026 20:05
Custom Address Fields with conditional display
<?php
use Give\Framework\FieldsAPI\Text;
add_action('givewp_donation_form_schema', function($form, $formId) {
//Country field
$country = Text::make('country')
->showInReceipt()
->receiptLabel(__('Country', 'give-tributes'))
->label(__('Cuntry', 'give-tributes'))
@rickalday
rickalday / give_export_get_data_donors.php
Created March 25, 2026 20:47
Fix donor export for donors with multiple mailing addresses
<?php
add_filter('give_export_get_data_donors', function($exportData) {
global $wpdb;
/**
* Map of output column names to their meta key prefixes
*/
$addressFields = [
'address_line1' => '_give_donor_address_billing_line1',
@rickalday
rickalday / add_fund_title_id_donations_endpoint.php
Last active March 5, 2026 19:52
Add fund title and ID to Donations endpoint
<?php
add_filter( 'give_api_donations_endpoint', function( $donations ) {
// Check if donations array has the expected structure
if ( ! isset( $donations['donations'] ) || ! is_array( $donations['donations'] ) ) {
return $donations;
}
// Loop through each donation and add the fund title
foreach ( $donations['donations'] as $key => &$donation ) {
<?php
namespace GiveGoCardless\Actions;
use Give\Donations\Models\Donation;
use Give\Framework\PaymentGateways\Exceptions\PaymentGatewayException;
use GiveGoCardless\DataTransferObjects\GoCardlessPayment;
use GiveGoCardless\Helpers\GoCardlessResources;
/**
@rickalday
rickalday / get_amount_from_url.php
Created February 19, 2026 21:34
Get amount from url (anchor link fix)
<?php
add_action('givewp_donation_form_schema', function($form) {
/** @var \Give\Framework\FieldsAPI\Amount $field */
$field = $form->getNodeByName('amount');
if (!$field) {
return;
}
@rickalday
rickalday / class-renewal-receipt-admin-email.php
Created February 17, 2026 00:54
Fix for form renewal email receipt
<?php
/**
* Give Renewal Recipient Admin Email
*
* @package Give_Recurring
* @subpackage Includes/Admin/Emails
* @copyright Copyright (c) 2018, GiveWP
* @license https://opensource.org/licenses/gpl-license GNU Public License
* @since 1.8.3
@rickalday
rickalday / givewp_form_preloader.php
Created January 14, 2026 18:15
Add a simple preloader to visual builder forms created with GiveWP
<?php
add_action( 'wp_footer', function(){
?>
<script>
document.addEventListener('DOMContentLoaded', () => {
const wrapper = document.querySelector('.root-data-givewp-embed');
const iframe = wrapper?.querySelector('iframe');
if (!wrapper || !iframe) {
return;
@rickalday
rickalday / donation_id_tag.php
Created January 8, 2026 21:52
Creates a {donation_id} for GiveWP Emails
<?php
function donation_id_tag( $email_tags ) {
$new_email_tag = array(
'tag' => 'donation_id',
'description' => esc_html__( 'This tag outputs the donation ID', 'give' ),
'function' => 'get_donation_id',
'context' => 'general', // Context can be general, donor, form or donation
);
@rickalday
rickalday / give_zapier_trigger_cleanup.php
Created January 8, 2026 16:55
Add a custom 'monthly' interval to WordPress cron schedules to delete wp_give_zapier_trigger from autoload
/**
* Add a custom 'monthly' interval to WordPress cron schedules.
*/
add_filter( 'cron_schedules', 'add_custom_monthly_cron_schedule' );
function add_custom_monthly_cron_schedule( $schedules ) {
$schedules['monthly'] = array(
'interval' => MONTH_IN_SECONDS, // Approximately 30 days
'display' => __( 'Once Monthly', 'text-domain' )
);
return $schedules;