Created
February 24, 2016 00:31
-
-
Save ericnicolaas/e74f672d1a2f64fbe59f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Collect the donor's Dedication wishes in the donation form. | |
* | |
* @param array[] $fields | |
* @param Charitable_Donation_Form $form | |
* @return array[] | |
*/ | |
function ed_collect_dedication( $fields, Charitable_Donation_Form $form ) { | |
$fields[ 'donor_dedication' ] = array( | |
'label' => __( 'Please dedicate my donation to (in honor of, in memoriam, etc.):', 'your-namespace' ), | |
'type' => 'text', | |
'priority' => 22, | |
'value' => $form->get_user_value( 'donor_dedication' ), | |
'required' => false, | |
'data_type' => 'user' | |
); | |
return $fields; | |
} | |
add_filter( 'charitable_donation_form_user_fields', 'ed_collect_dedication', 10, 2 ); | |
/** | |
* Display the Dedication Information in the admin donation details box. | |
* | |
* @param array[] $meta | |
* @param Charitable_Donation $donation | |
* @return array[] | |
*/ | |
function ed_show_donor_dedication_in_admin( $meta, $donation ) { | |
$donor_data = $donation->get_donor_data(); | |
$meta[ 'donor_dedication' ] = array( | |
'label' => __( 'Dedication', 'your-namespace' ), | |
'value' => $donor_data[ 'donor_dedication' ] | |
); | |
return $meta; | |
} | |
add_filter( 'charitable_donation_admin_meta', 'ed_show_donor_dedication_in_admin', 10, 2 ); | |
/** | |
* Add a checkbox on the donation form to ask the donor whether they would like to have their donation DEDICATION acknowledged. Opt-IN Checkbox. | |
* | |
* @return void | |
*/ | |
function ed_add_donation_dedication_ack_opt_in_checkbox() { | |
$ticked = isset( $_POST[ 'donation_dedication_ack_optin' ] ) && $_POST[ 'donation_dedication_ack_optout' ]; | |
?> | |
<div id="charitable_field_donation_dedication_ack_optin" class="charitable-form-field charitable-form-field-checkbox"> | |
<input type="checkbox" name="donation_dedication_ack_optin" value="1" <?php checked( $ticked ) ?> /> | |
<label for="charitable_field_donation_dedication_ack_optin"><?php _e( 'Please send an acknowledgement to the individual or organization to whom I am dedicating my donation (contact information included above).', 'your-namespace' ) ?></label> | |
</div> | |
<?php | |
} | |
add_filter( 'charitable_donation_form_donor_fields_after', 'ed_add_donation_dedication_ack_opt_in_checkbox' ); | |
/** | |
* Add donation_ack_optin to the list of meta fields to be saved. | |
* | |
* @param mixed[] $meta | |
* @param int $donation_id | |
* @param Charitable_Donation_Processor $processor | |
* @return mixed[] | |
*/ | |
function ed_save_donation_dedication_ack_opt_in_meta_field( $meta, $donation_id, Charitable_Donation_Processor $processor ) { | |
$meta[ 'donation_dedication_ack_optin' ] = $processor->get_donation_data_value( 'donation_dedication_ack_optin' ); | |
return $meta; | |
} | |
add_filter( 'charitable_donation_meta', 'ed_save_donation_dedication_ack_opt_in_meta_field', 10, 3 ); | |
/** | |
* The value for donation_dedication_ack_optout should always be either 1 or 0. | |
* | |
* @return int | |
*/ | |
function ed_save_submitted_value_donation_dedication_ack_opt_in( $values ) { | |
$values[ 'donation_dedication_ack_optin' ] = isset( $_POST[ 'donation_dedication_ack_optin' ] ) && $_POST[ 'donation_dedication_ack_optin' ] ? 1 : 0; | |
return $values; | |
} | |
add_filter( 'charitable_donation_values', 'ed_save_submitted_value_donation_dedication_ack_opt_in' ); | |
/** | |
* Collect the donor's Public Acknowledgement wishes in the donation form. | |
* | |
* @param array[] $fields | |
* @param Charitable_Donation_Form $form | |
* @return array[] | |
*/ | |
function ed_collect_donor_ack_name( $fields, Charitable_Donation_Form $form ) { | |
$fields[ 'donor_ack_name' ] = array( | |
'label' => __( 'Yes, you may acknowledge my donation publicly. Use this name (or names) to acknowledge my donation: (fill-in only if different from name entered above)', 'your-namespace' ), | |
'type' => 'text', | |
'priority' => 24, | |
'value' => $form->get_user_value( 'donor_ack_name' ), | |
'required' => false, | |
'data_type' => 'user' | |
); | |
return $fields; | |
} | |
add_filter( 'charitable_donation_form_user_fields', 'ed_collect_donor_ack_name', 10, 2 ); | |
/** | |
* Display the Dedication Information in the admin donation details box. | |
* | |
* @param array[] $meta | |
* @param Charitable_Donation $donation | |
* @return array[] | |
*/ | |
function ed_show_donor_ack_name_in_admin( $meta, $donation ) { | |
$donor_data = $donation->get_donor_data(); | |
$meta[ 'donor_ack_name' ] = array( | |
'label' => __( 'Donor Public Name', 'your-namespace' ), | |
'value' => $donor_data[ 'donor_ack_name' ] | |
); | |
return $meta; | |
} | |
add_filter( 'charitable_donation_admin_meta', 'ed_show_donor_ack_name_in_admin', 10, 2 ); | |
/** | |
* Add a checkbox on the donation form to ask the donor whether they would like to have the donation acknowledged publicly. | |
* | |
* @return void | |
*/ | |
function ed_add_donation_public_ack_opt_out_checkbox() { | |
$ticked = isset( $_POST[ 'donation_ack_optout' ] ) && $_POST[ 'donation_ack_optout' ]; | |
?> | |
<div id="charitable_field_donation_ack_optout" class="charitable-form-field charitable-form-field-checkbox"> | |
<input type="checkbox" name="donation_ack_optout" value="1" <?php checked( $ticked ) ?> /> | |
<label for="charitable_field_donation_ack_optout"><?php _e( 'No, please do not acknowledge my donation publicly.', 'your-namespace' ) ?></label> | |
</div> | |
<?php | |
} | |
add_filter( 'charitable_donation_form_donor_fields_after', 'ed_add_donation_public_ack_opt_out_checkbox' ); | |
/** | |
* Add donation_ack_optout to the list of meta fields to be saved. | |
* | |
* @param mixed[] $meta | |
* @param int $donation_id | |
* @param Charitable_Donation_Processor $processor | |
* @return mixed[] | |
*/ | |
function ed_save_donation_public_ack_opt_out_meta_field( $meta, $donation_id, Charitable_Donation_Processor $processor ) { | |
$meta[ 'donation_ack_optout' ] = $processor->get_donation_data_value( 'donation_ack_optout' ); | |
return $meta; | |
} | |
add_filter( 'charitable_donation_meta', 'ed_save_donation_public_ack_opt_out_meta_field', 10, 3 ); | |
/** | |
* The value for donation_ack_optout should always be either 1 or 0. | |
* | |
* @return int | |
*/ | |
function ed_save_submitted_value_donation_public_ack_opt_out( $values ) { | |
$values[ 'donation_ack_optout' ] = isset( $_POST[ 'donation_ack_optout' ] ) && $_POST[ 'donation_ack_optout' ] ? 1 : 0; | |
return $values; | |
} | |
add_filter( 'charitable_donation_values', 'ed_save_submitted_value_donation_public_ack_opt_out' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment