/** * Get Donation Form * * @since 1.0 * * @param array $args Arguments for display * * @return string $purchase_form */ function give_get_donation_form($args = array()) { global $post; $form_id = is_object($post) ? $post->ID : 0; if (isset($args['id'])) { $form_id = $args['id']; } $defaults = apply_filters('give_form_args_defaults', array('form_id' => $form_id)); $args = wp_parse_args($args, $defaults); $form = new Give_Donate_Form($args['form_id']); //bail if no form ID if (empty($form->ID)) { return false; } $payment_mode = give_get_chosen_gateway($form->ID); $form_action = add_query_arg(apply_filters('give_form_action_args', array('payment-mode' => $payment_mode)), give_get_current_page_url()); //Sanity Check: Donation form not published or user doesn't have permission to view drafts if ('publish' !== $form->post_status && !current_user_can('edit_give_forms', $form->ID)) { return false; } //Get the form wrap CSS classes. $form_wrap_classes = $form->get_form_wrap_classes($args); //Get the <form> tag wrap CSS classes. $form_classes = $form->get_form_classes($args); ob_start(); /** * Fires before the post form outputs. * * @since 1.0 * * @param int $form ->ID The current form ID * @param array $args An array of form args */ do_action('give_pre_form_output', $form->ID, $args); ?> <div id="give-form-<?php echo $form->ID; ?> -wrap" class="<?php echo $form_wrap_classes; ?> "> <?php if ($form->is_close_donation_form()) { //Get Goal thank you message. $display_thankyou_message = get_post_meta($form->ID, '_give_form_goal_achieved_message', true); $display_thankyou_message = !empty($display_thankyou_message) ? $display_thankyou_message : esc_html__('Thank you to all our donors, we have met our fundraising goal.', 'give'); //Print thank you message. apply_filters('give_goal_closed_output', give_output_error($display_thankyou_message, true, 'success')); } else { if (isset($args['show_title']) && $args['show_title'] == true) { echo apply_filters('give_form_title', '<h2 class="give-form-title">' . get_the_title($form_id) . '</h2>'); } do_action('give_pre_form', $form->ID, $args); ?> <form id="give-form-<?php echo $form_id; ?> " class="<?php echo $form_classes; ?> " action="<?php echo esc_url_raw($form_action); ?> " method="post"> <input type="hidden" name="give-form-id" value="<?php echo $form->ID; ?> "/> <input type="hidden" name="give-form-title" value="<?php echo htmlentities($form->post_title); ?> "/> <input type="hidden" name="give-current-url" value="<?php echo htmlspecialchars(give_get_current_page_url()); ?> "/> <input type="hidden" name="give-form-url" value="<?php echo htmlspecialchars(give_get_current_page_url()); ?> "/> <input type="hidden" name="give-form-minimum" value="<?php echo give_format_amount(give_get_form_minimum_price($form->ID)); ?> "/> <!-- The following field is for robots only, invisible to humans: --> <span class="give-hidden" style="display: none !important;"> <label for="give-form-honeypot-<?php echo $form_id; ?> "></label> <input id="give-form-honeypot-<?php echo $form_id; ?> " type="text" name="give-honeypot" class="give-honeypot give-hidden"/> </span> <?php //Price ID hidden field for variable (mult-level) donation forms if (give_has_variable_prices($form_id)) { //get default selected price ID $prices = apply_filters('give_form_variable_prices', give_get_variable_prices($form_id), $form_id); $price_id = 0; //loop through prices foreach ($prices as $price) { if (isset($price['_give_default']) && $price['_give_default'] === 'default') { $price_id = $price['_give_id']['level_id']; } } ?> <input type="hidden" name="give-price-id" value="<?php echo $price_id; ?> "/> <?php } do_action('give_checkout_form_top', $form->ID, $args); do_action('give_payment_mode_select', $form->ID, $args); do_action('give_checkout_form_bottom', $form->ID, $args); ?> </form> <?php do_action('give_post_form', $form->ID, $args); ?> <?php } ?> <!--end #give-form-<?php echo absint($form->ID); ?> --></div> <?php /** * Fires after the post form outputs. * * @since 1.0 * * @param int $form ->ID The current form ID * @param array $args An array of form args */ do_action('give_post_form_output', $form->ID, $args); $final_output = ob_get_clean(); echo apply_filters('give_donate_form', $final_output, $args); }