Skip to content

Instantly share code, notes, and snippets.

@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;
@rickalday
rickalday / give_add_donation_level_pdf_tag.php
Last active December 19, 2025 19:01
Add a PDF tag that outputs the donation leve description
<?php
use Give\ValueObjects\Money;
use Give\Donations\Models\Donation;
function give_add_donation_level_pdf_tag( $template_content, $args ) {
// during testing, uncomment the next line to see a full printed array of the possible args that you can query
//var_dump("<pre>".print_r($args,true)."</pre>");
$level_label = '';
$currency = give_get_option('currency');
$form_id = give_get_payment_form_id( $args['donation_id'] );
@rickalday
rickalday / create_missing_campaign_tables.sql
Last active February 6, 2026 18:39
Create missing Campaign tables
-- Change the wp_ prefix to match the WP prefix on your site
-- Create give_campaigns table
CREATE TABLE wp_give_campaigns (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
campaign_page_id INT UNSIGNED NULL,
form_id INT NOT NULL,
campaign_type VARCHAR(12) NOT NULL DEFAULT '',
campaign_title TEXT NOT NULL,
campaign_url TEXT NOT NULL,
short_desc TEXT NOT NULL,
@rickalday
rickalday / givewp_authorizenet_payment_description.php
Created November 14, 2025 20:46
Send custom data to Authorize.net
<?php
add_filter(
'give_authorize_recurring_payment_description',
function($description, $purchase_data, $subscription){
\Give\Framework\PaymentGateways\Log\PaymentGatewayLog::success('Contents of the variables',
[
'Purchase Data' => $purchase_data,
]
);