/** * Return an instance of this class. * * @since 1.0.0 * * @return object A single instance of this class. */ public static function get_instance() { // If the single instance hasn't been set, set it now. if (null == self::$instance) { self::$instance = new self(); } return self::$instance; }
public function includes() { parent::includes(); require_once SC_DIR_PATH_PRO . 'classes/class-stripe-checkout-pro-licenses.php'; require_once SC_DIR_PATH_PRO . 'classes/class-shortcode-tracker.php'; require_once SC_DIR_PATH_PRO . 'classes/class-stripe-checkout-pro-functions.php'; require_once SC_DIR_PATH_PRO . 'classes/class-stripe-checkout-pro-admin.php'; require_once SC_DIR_PATH_PRO . 'classes/class-stripe-checkout-system-status.php'; }
/** * Include required files (admin and frontend). */ public function includes() { parent::includes(); // Shortcode tracker not needed in Lite, but IS shared with Subscriptions add-on. require_once SC_DIR_PATH_PRO . 'classes/class-mm-shortcode-tracker.php'; require_once SC_DIR_PATH_PRO . 'classes/class-stripe-checkout-pro-functions.php'; require_once SC_DIR_PATH_PRO . 'classes/class-stripe-checkout-pro-scripts.php'; require_once SC_DIR_PATH_PRO . 'classes/class-stripe-checkout-pro-settings-extended.php'; require_once SC_DIR_PATH_PRO . 'classes/class-stripe-checkout-pro-shortcodes.php'; // Admin side require_once SC_DIR_PATH_PRO . 'classes/class-stripe-checkout-pro-admin.php'; require_once SC_DIR_PATH_PRO . 'classes/class-stripe-checkout-pro-licenses.php'; }
/** * Main function to register all of the plugin settings * * @since 1.0.0 */ function sc_register_settings() { global $sc_options; $sc_options = array(); $sc_settings = array('default' => array('note' => array('id' => 'settings_note', 'name' => '', 'desc' => '<a href="' . sc_ga_campaign_url(SC_WEBSITE_BASE_URL . 'docs/shortcodes/stripe-checkout/', 'stripe_checkout', 'settings', 'docs') . '" target="_blank">' . __('See shortcode options and examples', 'sc') . '</a> ' . __('for', 'sc') . ' ' . Stripe_Checkout::get_plugin_title() . '<p class="description">' . __('Shortcode attributes take precedence and will always override site-wide default settings.', 'sc') . '</p>', 'type' => 'section'), 'name' => array('id' => 'name', 'name' => __('Site Name', 'sc'), 'desc' => __('The name of your store or website. Defaults to Site Name.', 'sc'), 'type' => 'text', 'size' => 'regular-text'), 'currency' => array('id' => 'currency', 'name' => __('Currency Code', 'sc'), 'desc' => __('Specify a currency using it\'s ', 'sc') . sprintf('<a href="%s" target="_blank">%s</a>', 'https://support.stripe.com/questions/which-currencies-does-stripe-support', __('3-letter ISO Code', 'sc')) . '. ' . __('Defaults to USD.', 'sc'), 'type' => 'text', 'size' => 'regular-text'), 'image_url' => array('id' => 'image_url', 'name' => __('Image URL', 'sc'), 'desc' => __('A URL pointing to a square image of your brand or product. The recommended minimum size is 128x128px.', 'sc'), 'type' => 'text', 'size' => 'regular-text'), 'checkout_button_label' => array('id' => 'checkout_button_label', 'name' => __('Checkout Button Label', 'sc'), 'desc' => __('The label of the payment button in the checkout form. You can use {{amount}} to display the amount.', 'sc'), 'type' => 'text', 'size' => 'regular-text'), 'payment_button_label' => array('id' => 'payment_button_label', 'name' => __('Payment Button Label', 'sc'), 'desc' => __('Text to display on the default blue button that users click to initiate a checkout process.', 'sc'), 'type' => 'text', 'size' => 'regular-text'), 'success_redirect_url' => array('id' => 'success_redirect_url', 'name' => __('Success Redirect URL', 'sc'), 'desc' => __('The URL that the user should be redirected to after a successful payment.', 'sc'), 'type' => 'text', 'size' => 'regular-text'), 'disable_success_message' => array('id' => 'disable_success_message', 'name' => __('Disable Success Message', 'sc'), 'desc' => __('Disable default success message. Useful if you are redirecting to your own success page.', 'sc'), 'type' => 'checkbox'), 'failure_redirect_url' => array('id' => 'failure_redirect_url', 'name' => __('Failure Redirect URL', 'sc'), 'desc' => __('The URL that the user should be redirected to after a failed payment.', 'sc'), 'type' => 'text', 'size' => 'regular-text'), 'billing' => array('id' => 'billing', 'name' => __('Enable Billing Address', 'sc'), 'desc' => __('Require the user to enter their billing address during checkout.', 'sc') . (class_exists('Stripe_Checkout_Pro') ? '<br><em>' . __('See below if you also need to require a shipping address.', 'sc') . '</em>' : ''), 'type' => 'checkbox'), 'verify_zip' => array('id' => 'verify_zip', 'name' => __('Verify Zip Code', 'sc'), 'desc' => __('Verifies the zip code of the card.', 'sc'), 'type' => 'checkbox'), 'enable_remember' => array('id' => 'enable_remember', 'name' => __('Enable "Remember Me"', 'sc'), 'desc' => __('Adds a "Remember Me" option to the checkout form to allow the user to store their credit card for future use with other sites using Stripe. ', 'sc') . sprintf('<a href="%s" target="_blank">%s</a>', 'https://stripe.com/checkout/info', __('See how it works', 'sc')) . '.', 'type' => 'checkbox'), 'disable_css' => array('id' => 'disable_css', 'name' => __('Disable Form CSS', 'sc'), 'desc' => __('Disable the plugin from ouputting the default form CSS.', 'sc'), 'type' => 'checkbox'), 'uninstall_save_settings' => array('id' => 'uninstall_save_settings', 'name' => __('Save Settings', 'sc'), 'desc' => __('Save your settings when uninstalling this plugin. Useful when upgrading or re-installing.', 'sc'), 'type' => 'checkbox')), 'keys' => array('enable_live_key' => array('id' => 'enable_live_key', 'name' => __('Test or Live Mode', 'sc'), 'desc' => '<p class="description">' . __('Toggle between using your Test or Live API keys.', 'sc') . '</p>', 'type' => 'toggle_control'), 'test_secret_key' => array('id' => 'test_secret_key', 'name' => __('Test Secret Key', 'sc'), 'desc' => __('Enter your test secret key, found in your Stripe account settings.', 'sc'), 'type' => 'text', 'size' => 'regular-text'), 'test_publish_key' => array('id' => 'test_publish_key', 'name' => __('Test Publishable Key', 'sc'), 'desc' => __('Enter your test publishable key, found in your Stripe account settings.', 'sc'), 'type' => 'text', 'size' => 'regular-text'), 'live_secret_key' => array('id' => 'live_secret_key', 'name' => __('Live Secret Key', 'sc'), 'desc' => __('Enter your live secret key, found in your Stripe account settings.', 'sc'), 'type' => 'text', 'size' => 'regular-text'), 'live_publish_key' => array('id' => 'live_publish_key', 'name' => __('Live Publishable Key', 'sc'), 'desc' => __('Enter your live publishable key, found in your Stripe account settings.', 'sc'), 'type' => 'text', 'size' => 'regular-text'))); $sc_settings = apply_filters('sc_settings', $sc_settings); $sc_settings_title = ''; foreach ($sc_settings as $setting => $option) { if (false == get_option('sc_settings_' . $setting)) { add_option('sc_settings_' . $setting); } add_settings_section('sc_settings_' . $setting, apply_filters('sc_settings_' . $setting . '_title', $sc_settings_title), '__return_false', 'sc_settings_' . $setting); foreach ($sc_settings[$setting] as $option) { add_settings_field('sc_settings_' . $setting . '[' . $option['id'] . ']', $option['name'], function_exists('sc_' . $option['type'] . '_callback') ? 'sc_' . $option['type'] . '_callback' : 'sc_missing_callback', 'sc_settings_' . $setting, 'sc_settings_' . $setting, sc_get_settings_field_args($option, $setting)); } register_setting('sc_settings_' . $setting, 'sc_settings_' . $setting, 'sc_settings_sanitize'); $sc_options = array_merge($sc_options, is_array(get_option('sc_settings_' . $setting)) ? get_option('sc_settings_' . $setting) : array()); } update_option('sc_settings_master', $sc_options); }
* @wordpress-plugin * Plugin Name: Simple Stripe Checkout * Plugin URI: http://wpstripe.net * Description: Add a Stripe Checkout form overlay to your site in minutes using shortcodes. * Version: 1.2.9 * Author: Phil Derksen * Author URI: http://philderksen.com * License: GPL-2.0+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt * GitHub Plugin URI: https://github.com/pderksen/WP-Stripe-Checkout * Text Domain: sc * Domain Path: /languages/ */ // Exit if accessed directly. if (!defined('ABSPATH')) { exit; } if (!defined('SC_MAIN_FILE')) { define('SC_MAIN_FILE', __FILE__); } if (!defined('SC_PATH')) { define('SC_PATH', plugin_dir_path(__FILE__)); } if (!defined('SC_URL')) { define('SC_URL', plugins_url('', __FILE__) . '/'); } require_once plugin_dir_path(__FILE__) . 'class-stripe-checkout.php'; // Register hooks that are fired when the plugin is activated, deactivated, and uninstalled, respectively. register_activation_hook(__FILE__, array('Stripe_Checkout', 'activate')); Stripe_Checkout::get_instance();
} // Admin notice and stop execution if Pro plugin found. add_action('plugins_loaded', 'simpay_pro_plugin_check'); function simpay_pro_plugin_check() { if (class_exists('Stripe_Checkout_Pro') || class_exists('Simple_Pay_Pro')) { add_action('admin_notices', 'simpay_pro_active_notice'); return; } } function simpay_pro_active_notice() { echo '<div class="error"><p>' . __('Simple Pay Lite and Pro cannot be active simultaneously. Please deactivate one of them to proceed.', 'stripe') . '</p></div>'; } // Plugin requirements class. require_once 'classes/wp-requirements.php'; // Check plugin requirements before loading plugin. $this_plugin_checks = new SimPay_WP_Requirements('WP Simple Pay Lite for Stripe', plugin_basename(__FILE__), array('PHP' => '5.3.3', 'WordPress' => '4.2', 'Extensions' => array('curl', 'json', 'mbstring'))); if ($this_plugin_checks->pass() === false) { $this_plugin_checks->halt(); return; } // Load the plugin main class. require_once SC_DIR_PATH . 'classes/class-stripe-checkout-shared.php'; // Register hook that is fired when the plugin is activated. register_activation_hook(SC_PLUGIN_FILE, array('Stripe_Checkout', 'activate')); // Create a global instance of our main class for this plugin so we can use it throughout all the other classes. global $base_class; // Let's get going finally! $base_class = Stripe_Checkout::get_instance();
/** * Disables opengraph tags to avoid conflicts with WP SEO by Yoast * * @since 1.2.0 */ function sc_disable_seo_og() { $sc_payment_details = Stripe_Checkout::get_instance()->session->get('sc_payment_details'); if ($sc_payment_details['show'] == true) { remove_action('template_redirect', 'wpseo_frontend_head_init', 999); } }
} ?> <!-- Use some built-in WP admin theme styles. --> <div class="sidebar-container metabox-holder"> <div class="postbox"> <h3 class="wp-ui-primary"><span><?php _e('Need More Options?', 'stripe'); ?> </span></h3> <div class="inside"> <div class="main"> <p class="last-blurb centered"> <?php printf(__("Additional perks you'll get with %s", 'stripe'), Stripe_Checkout::get_pro_plugin_title()); ?> </p> <ul> <li><div class="dashicons dashicons-yes"></div> <?php _e('Let customers enter an amount', 'stripe'); ?> </li> <li><div class="dashicons dashicons-yes"></div> <?php _e('Collect data with custom fields', 'stripe'); ?> </li> <li><div class="dashicons dashicons-yes"></div> <?php _e('Offer discounts with coupon codes', 'stripe'); ?>
<?php /** * Show admin license key notice if Lite or the old legacy plugins are detected. */ // Exit if accessed directly. if (!defined('ABSPATH')) { exit; } ?> <style> #sc-lite-legacy-notice .button-primary, #sc-lite-legacy-notice .button-secondary { margin: 2px 0; } </style> <div id="sc-lite-legacy-notice" class="error"> <p> <?php // Check for empty key first. echo '<strong>' . sprintf(__('Notice: You have %1$s or a legacy add-on installed. Please deactivate the plugin(s) to avoid conflicts with %2$s.', 'sc'), Stripe_Checkout::get_plugin_title(), Stripe_Checkout_Pro::get_plugin_title()) . '</strong>' . "\n"; ?> </p> </div>