Ejemplo n.º 1
0
 /**
  * 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));
    }
}