%PDF- %PDF-
Direktori : /var/www/projetos/spanish.ongrace.com/wp-content/plugins/paypal-donations/ |
Current File : /var/www/projetos/spanish.ongrace.com/wp-content/plugins/paypal-donations/paypal-donations.php |
<?php /* Plugin Name: PayPal Donations Plugin URI: https://www.tipsandtricks-hq.com/paypal-donations-widgets-plugin Description: Easy and simple setup and insertion of PayPal donate buttons with a shortcode or through a sidebar Widget. Donation purpose can be set for each button. A few other customization options are available as well. Author: Tips and Tricks HQ, Johan Steen Author URI: https://www.tipsandtricks-hq.com/ Version: 1.9.7 License: GPLv2 or later Text Domain: paypal-donations */ include_once('paypal_utility.php'); /** Load all of the necessary class files for the plugin */ spl_autoload_register('PayPalDonations::autoload'); /** * Init Singleton Class for PayPal Donations. * * @package PayPal Donations * @author Johan Steen <artstorm at gmail dot com> */ class PayPalDonations { /** Holds the plugin instance */ private static $instance = false; /** Define plugin constants */ const MIN_PHP_VERSION = '5.2.4'; const MIN_WP_VERSION = '3.0'; const OPTION_DB_KEY = 'paypal_donations_options'; const TEXT_DOMAIN = 'paypal-donations'; const FILE = __FILE__; // ------------------------------------------------------------------------- // Define constant data arrays // ------------------------------------------------------------------------- private $donate_buttons = array( 'small' => 'https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif', 'large' => 'https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif', 'cards' => 'https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif' ); private $currency_codes = array( 'AUD' => 'Australian Dollars (A $)', 'BRL' => 'Brazilian Real', 'CAD' => 'Canadian Dollars (C $)', 'CZK' => 'Czech Koruna', 'DKK' => 'Danish Krone', 'EUR' => 'Euros (€)', 'HKD' => 'Hong Kong Dollar ($)', 'HUF' => 'Hungarian Forint', 'ILS' => 'Israeli New Shekel', 'JPY' => 'Yen (¥)', 'MYR' => 'Malaysian Ringgit', 'MXN' => 'Mexican Peso', 'NOK' => 'Norwegian Krone', 'NZD' => 'New Zealand Dollar ($)', 'PHP' => 'Philippine Peso', 'PLN' => 'Polish Zloty', 'GBP' => 'Pounds Sterling (£)', 'RUB' => 'Russian Ruble', 'SGD' => 'Singapore Dollar ($)', 'SEK' => 'Swedish Krona', 'CHF' => 'Swiss Franc', 'TWD' => 'Taiwan New Dollar', 'THB' => 'Thai Baht', 'TRY' => 'Turkish Lira', 'USD' => 'U.S. Dollars ($)', ); private $localized_buttons = array( 'en_AU' => 'Australia - Australian English', 'de_DE/AT' => 'Austria - German', 'nl_NL/BE' => 'Belgium - Dutch', 'fr_XC' => 'Canada - French', 'zh_XC' => 'China - Simplified Chinese', 'fr_FR/FR' => 'France - French', 'de_DE/DE' => 'Germany - German', 'it_IT/IT' => 'Italy - Italian', 'ja_JP/JP' => 'Japan - Japanese', 'es_XC' => 'Mexico - Spanish', 'nl_NL/NL' => 'Netherlands - Dutch', 'pl_PL/PL' => 'Poland - Polish', 'es_ES/ES' => 'Spain - Spanish', 'de_DE/CH' => 'Switzerland - German', 'fr_FR/CH' => 'Switzerland - French', 'en_US' => 'United States - U.S. English' ); private $checkout_languages = array( 'AU' => 'Australia', 'AT' => 'Austria', 'BE' => 'Belgium', 'BR' => 'Brazil', 'CA' => 'Canada', 'CN' => 'China', 'FR' => 'France', 'DE' => 'Germany', 'IT' => 'Italy', 'NL' => 'Netherlands', 'PL' => 'Poland', 'PR' => 'Portugal', 'RU' => 'Russia', 'ES' => 'Spain', 'SE' => 'Sweden', 'CH' => 'Switzerland', 'GB' => 'United Kingdom', 'US' => 'United States', ); /** * Singleton class */ public static function getInstance() { if (!self::$instance) { self::$instance = new self(); } return self::$instance; } /** * Constructor. * Initializes the plugin by setting localization, filters, and * administration functions. */ private function __construct() { if (!$this->testHost()) { return; } add_action('init', array($this, 'textDomain')); register_uninstall_hook(__FILE__, array(__CLASS__, 'uninstall')); $admin = new PayPalDonations_Admin(); $admin->setOptions( get_option(self::OPTION_DB_KEY), $this->currency_codes, $this->donate_buttons, $this->localized_buttons, $this->checkout_languages ); add_filter('widget_text', 'do_shortcode'); add_shortcode('paypal-donation', array(&$this,'paypalShortcode')); add_action('wp_head', array($this, 'addCss'), 999); add_action('widgets_init', array($this, 'handle_widgets_init')); } public function handle_widgets_init(){ register_widget("PayPalDonations_Widget"); } /** * PSR-0 compliant autoloader to load classes as needed. * * @param string $classname The name of the class * @return null Return early if the class name does not start with the * correct prefix */ public static function autoload($className) { if (__CLASS__ !== mb_substr($className, 0, strlen(__CLASS__))) { return; } $className = ltrim($className, '\\'); $fileName = ''; $namespace = ''; if ($lastNsPos = strrpos($className, '\\')) { $namespace = substr($className, 0, $lastNsPos); $className = substr($className, $lastNsPos + 1); $fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace); $fileName .= DIRECTORY_SEPARATOR; } $fileName .= str_replace('_', DIRECTORY_SEPARATOR, 'src_'.$className); $fileName .='.php'; require $fileName; } /** * Loads the plugin text domain for translation */ public function textDomain() { $domain = self::TEXT_DOMAIN; $locale = apply_filters('plugin_locale', get_locale(), $domain); load_textdomain( $domain, WP_LANG_DIR.'/'.$domain.'/'.$domain.'-'.$locale.'.mo' ); load_plugin_textdomain( $domain, false, dirname(plugin_basename(__FILE__)).'/lang/' ); } /** * Fired when the plugin is uninstalled. */ public function uninstall() { delete_option('paypal_donations_options'); delete_option('widget_paypal_donations'); } /** * Adds inline CSS code to the head section of the html pages to center the * PayPal button. */ public function addCss() { $opts = get_option(self::OPTION_DB_KEY); if (isset($opts['center_button']) and $opts['center_button'] == true) { echo '<style type="text/css">'."\n"; echo '.paypal-donations { text-align: center !important }'."\n"; echo '</style>'."\n"; } } /** * Create and register the PayPal shortcode */ public function paypalShortcode($atts) { extract( shortcode_atts( array( 'purpose' => '', 'reference' => '', 'amount' => '', 'return_page' => '', 'button_url' => '', 'validate_ipn' => '', ), $atts ) ); return $this->generateHtml( $purpose, $reference, $amount, $return_page, $button_url, $validate_ipn ); } /** * Generate the PayPal button HTML code */ public function generateHtml( $purpose = null, $reference = null, $amount = null, $return_page = null, $button_url = null, $validate_ipn = '' ) { $pd_options = get_option(self::OPTION_DB_KEY); // Set overrides for purpose and reference if defined $purpose = (!$purpose) ? $pd_options['purpose'] : $purpose; $reference = (!$reference) ? $pd_options['reference'] : $reference; $amount = (!$amount) ? $pd_options['amount'] : $amount; $return_page = (!$return_page) ? $pd_options['return_page'] : $return_page; $button_url = (!$button_url) ? $pd_options['button_url'] : $button_url; $data = array( 'pd_options' => $pd_options, 'return_page' => $return_page, 'purpose' => $purpose, 'reference' => $reference, 'amount' => $amount, 'button_url' => $button_url, 'donate_buttons' => $this->donate_buttons, 'validate_ipn' => $validate_ipn, ); return PayPalDonations_View::render('paypal-button', $data); } // ------------------------------------------------------------------------- // Environment Checks // ------------------------------------------------------------------------- /** * Checks PHP and WordPress versions. */ private function testHost() { // Check if PHP is too old if (version_compare(PHP_VERSION, self::MIN_PHP_VERSION, '<')) { // Display notice add_action('admin_notices', array(&$this, 'phpVersionError')); return false; } // Check if WordPress is too old global $wp_version; if (version_compare($wp_version, self::MIN_WP_VERSION, '<')) { add_action('admin_notices', array(&$this, 'wpVersionError')); return false; } return true; } /** * Displays a warning when installed on an old PHP version. */ public function phpVersionError() { echo '<div class="error"><p><strong>'; printf( 'Error: %3$s requires PHP version %1$s or greater.<br/>'. 'Your installed PHP version: %2$s', self::MIN_PHP_VERSION, PHP_VERSION, $this->getPluginName() ); echo '</strong></p></div>'; } /** * Displays a warning when installed in an old Wordpress version. */ public function wpVersionError() { echo '<div class="error"><p><strong>'; printf( 'Error: %2$s requires WordPress version %1$s or greater.', self::MIN_WP_VERSION, $this->getPluginName() ); echo '</strong></p></div>'; } /** * Get the name of this plugin. * * @return string The plugin name. */ private function getPluginName() { $data = get_plugin_data(self::FILE); return $data['Name']; } } add_action('plugins_loaded', array('PayPalDonations', 'getInstance'));