/** * Render a PayPal donation button * @return string The donation button markup */ public static function render_donations_button($atts) { // Check that feature is activated $dev_options = keel_developer_options(); if (!$dev_options['paypal']) { return ''; } // Shortcode values $paypal = shortcode_atts(array('amount' => '', 'label' => '', 'recurring' => false, 'description' => '', 'size' => ''), $atts); // Options and settings $options = keel_paypal_donations_get_theme_options(); // If not PayPal account is provided, do nothing if (empty($options['email'])) { return; } // Variables $amount = ltrim($paypal['amount'], '$ £'); $label = empty($paypal['label']) ? $options['currency'] . $amount : $paypal['label']; $recurring = empty($paypal['recurring']) ? '' : '<input type="hidden" name="paypal_donations_button_recurring" value="true">'; $description = empty($paypal['description']) ? '' : '<input type="hidden" name="paypal_donations_button_description" value="' . $paypal['description'] . '">'; $form = '<form class="paypal-donations-button" id="paypal-donations-table-' . $amount . '" name="paypal-donations-table" action="" method="post">' . '<input type="hidden" name="paypal_donations_button_amount" value="' . $amount . '">' . $recurring . $description . wp_nonce_field('keel_paypal_donations_button_nonce', 'keel_paypal_donations_button_process') . '<button class="btn btn-' . $paypal['size'] . '">' . $label . '</button>' . '</form>'; return $form; }
function keel_paypal_donations_theme_options_init() { $options = keel_paypal_donations_get_theme_options(); // Register a setting and its sanitization callback // register_setting( $option_group, $option_name, $sanitize_callback ); // $option_group - A settings group name. // $option_name - The name of an option to sanitize and save. // $sanitize_callback - A callback function that sanitizes the option's value. register_setting('keel_paypal_donations_options', 'keel_paypal_donations_theme_options', 'keel_paypal_donations_theme_options_validate'); // Register our settings field group // add_settings_section( $id, $title, $callback, $page ); // $id - Unique identifier for the settings section // $title - Section title // $callback - // Section callback (we don't want anything) // $page - // Menu slug, used to uniquely identify the page. See keel_paypal_donations_theme_options_add_page(). add_settings_section('general', 'General Settings', '__return_false', 'keel_paypal_donations_theme_options'); add_settings_section('details', 'Form Details', '__return_false', 'keel_paypal_donations_theme_options'); add_settings_section('amounts', 'Donation Values', '__return_false', 'keel_paypal_donations_theme_options'); // Register our individual settings fields // add_settings_field( $id, $title, $callback, $page, $section ); // $id - Unique identifier for the field. // $title - Setting field title. // $callback - Function that creates the field (from the Theme Option Fields section). // $page - The menu page on which to display this field. // $section - The section of the settings page in which to show the field. // update_option( 'keel_paypal_donations_theme_options', '' ); add_settings_field('email', __('PayPal Account ID', 'keel'), 'keel_paypal_donations_settings_field_email', 'keel_paypal_donations_theme_options', 'general'); add_settings_field('currency', __('Currency', 'keel'), 'keel_paypal_donations_settings_field_currency', 'keel_paypal_donations_theme_options', 'general'); add_settings_field('headings', __('Table Headings', 'keel'), 'keel_paypal_donations_settings_field_headings', 'keel_paypal_donations_theme_options', 'details'); add_settings_field('show_other', __('Other Amount', 'keel'), 'keel_paypal_donations_settings_field_show_other', 'keel_paypal_donations_theme_options', 'details'); add_settings_field('in_honor', __('In Honor/Memory', 'keel'), 'keel_paypal_donations_settings_field_show_in_honor', 'keel_paypal_donations_theme_options', 'details'); add_settings_field('recurring', __('Recurring Donations', 'keel'), 'keel_paypal_donations_settings_field_show_recurring', 'keel_paypal_donations_theme_options', 'details'); add_settings_field('donate', __('Donate Button', 'keel'), 'keel_paypal_donations_settings_field_donate_text', 'keel_paypal_donations_theme_options', 'details'); add_settings_field('success_link', __('Success URL', 'keel'), 'keel_paypal_donations_settings_field_success_link', 'keel_paypal_donations_theme_options', 'details'); foreach ($options['amounts'] as $key => $amount) { add_settings_field('amounts_' . $key, __('Donation Value ', 'keel') . ($key + 1), 'keel_paypal_donations_settings_field_amounts', 'keel_paypal_donations_theme_options', 'amounts', array('id' => $key)); } }