Easy Digital Downloads
  • Package
  • Class
  • Tree

Packages

  • EDD
    • Admin
      • Actions
      • Add-ons
      • Dashboard
      • Discounts
      • Downloads
      • Export
      • Notices
      • Pages
      • Payments
      • Reports
      • Settings
      • System
      • Upgrades
      • Upload
      • Welcome
    • Cart
    • Checkout
    • Classes
      • API
      • Fees
      • HTML
      • Roles
      • Session
    • Emails
    • Functions
      • AJAX
      • Compatibility
      • Errors
      • Formatting
      • Install
      • Login
      • Taxes
      • Templates
    • Gateways
    • Logging
    • Payments
    • Shortcodes
    • Widgets

Classes

  • Easy_Digital_Downloads

Functions

  • EDD
  1 <?php
  2 /**
  3  * Plugin Name: Easy Digital Downloads
  4  * Plugin URI: http://easydigitaldownloads.com
  5  * Description: Serve Digital Downloads Through WordPress
  6  * Author: Pippin Williamson
  7  * Author URI: http://pippinsplugins.com
  8  * Version: 1.5.1
  9  * Text Domain: edd
 10  * Domain Path: languages
 11  *
 12  * Easy Digital Downloads is free software: you can redistribute it and/or modify
 13  * it under the terms of the GNU General Public License as published by
 14  * the Free Software Foundation, either version 2 of the License, or
 15  * any later version.
 16  *
 17  * Easy Digital Downloads is distributed in the hope that it will be useful,
 18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 20  * GNU General Public License for more details.
 21  *
 22  * You should have received a copy of the GNU General Public License
 23  * along with Easy Digital Downloads. If not, see <http://www.gnu.org/licenses/>.
 24  *
 25  * @package EDD
 26  * @category Core
 27  * @author Pippin Williamson
 28  * @version 1.5.1
 29  */
 30 
 31 // Exit if accessed directly
 32 if ( ! defined( 'ABSPATH' ) ) exit;
 33 
 34 if ( ! class_exists( 'Easy_Digital_Downloads' ) ) :
 35 
 36 /**
 37  * Main Easy_Digital_Downloads Class
 38  *
 39  * @since 1.4
 40  */
 41 final class Easy_Digital_Downloads {
 42     /** Singleton *************************************************************/
 43 
 44     /**
 45      * @var Easy_Digital_Downloads The one true Easy_Digital_Downloads
 46      * @since 1.4
 47      */
 48     private static $instance;
 49 
 50     /**
 51      *  EDD User Roles and Capabilities Object
 52      *
 53      * @var object
 54      * @since 1.4.4
 55      */
 56     private $roles;
 57 
 58     /**
 59      * EDD Cart Fees Object
 60      *
 61      * @var object
 62      * @since 1.5
 63      */
 64     public $fees;
 65 
 66     /**
 67      * EDD API Object
 68      *
 69      * @var object
 70      * @since 1.5
 71      */
 72     public $api;
 73 
 74     /**
 75      * EDD HTML Session Object
 76      *
 77      * This holds cart items, purchase sessions, and anything else stored in the session
 78      *
 79      *
 80      * @var object
 81      * @since 1.5
 82      */
 83     public $session;
 84 
 85     /**
 86      * EDD HTML Element Helper Object
 87      *
 88      * @var object
 89      * @since 1.5
 90      */
 91     public $html;
 92 
 93     /**
 94      * Main Easy_Digital_Downloads Instance
 95      *
 96      * Insures that only one instance of Easy_Digital_Downloads exists in memory at any one
 97      * time. Also prevents needing to define globals all over the place.
 98      *
 99      * @since 1.4
100      * @static
101      * @staticvar array $instance
102      * @uses Easy_Digital_Downloads::setup_globals() Setup the globals needed
103      * @uses Easy_Digital_Downloads::includes() Include the required files
104      * @uses Easy_Digital_Downloads::setup_actions() Setup the hooks and actions
105      * @see EDD()
106      * @return The one true Easy_Digital_Downloads
107      */
108     public static function instance() {
109         if ( ! isset( self::$instance ) ) {
110             self::$instance = new Easy_Digital_Downloads;
111             self::$instance->setup_constants();
112             self::$instance->includes();
113             self::$instance->load_textdomain();
114             self::$instance->roles = new EDD_Roles();
115             self::$instance->fees = new EDD_Fees();
116             self::$instance->api = new EDD_API();
117             self::$instance->session = new EDD_Session();
118             self::$instance->html = new EDD_HTML_Elements();
119         }
120         return self::$instance;
121     }
122 
123     /**
124      * Setup plugin constants
125      *
126      * @access private
127      * @since 1.4
128      * @return void
129      */
130     private function setup_constants() {
131         // Plugin version
132         if ( ! defined( 'EDD_VERSION' ) )
133             define( 'EDD_VERSION', '1.5.1' );
134 
135         // Plugin Folder URL
136         if ( ! defined( 'EDD_PLUGIN_URL' ) )
137             define( 'EDD_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
138 
139         // Plugin Folder Path
140         if ( ! defined( 'EDD_PLUGIN_DIR' ) )
141             define( 'EDD_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
142 
143         // Plugin Root File
144         if ( ! defined( 'EDD_PLUGIN_FILE' ) )
145             define( 'EDD_PLUGIN_FILE', __FILE__ );
146     }
147 
148     /**
149      * Include required files
150      *
151      * @access private
152      * @since 1.4
153      * @return void
154      */
155     private function includes() {
156         global $edd_options;
157 
158         require_once EDD_PLUGIN_DIR . 'includes/admin/settings/register-settings.php';
159         $edd_options = edd_get_settings();
160 
161         require_once EDD_PLUGIN_DIR . 'includes/install.php';
162         require_once EDD_PLUGIN_DIR . 'includes/actions.php';
163         require_once EDD_PLUGIN_DIR . 'includes/deprecated-functions.php';
164         require_once EDD_PLUGIN_DIR . 'includes/ajax-functions.php';
165         require_once EDD_PLUGIN_DIR . 'includes/template-functions.php';
166         require_once EDD_PLUGIN_DIR . 'includes/checkout/template.php';
167         require_once EDD_PLUGIN_DIR . 'includes/checkout/functions.php';
168         require_once EDD_PLUGIN_DIR . 'includes/cart/template.php';
169         require_once EDD_PLUGIN_DIR . 'includes/cart/functions.php';
170         require_once EDD_PLUGIN_DIR . 'includes/cart/actions.php';
171         require_once EDD_PLUGIN_DIR . 'includes/class-edd-api.php';
172         require_once EDD_PLUGIN_DIR . 'includes/class-edd-fees.php';
173         require_once EDD_PLUGIN_DIR . 'includes/class-edd-html-elements.php';
174         require_once EDD_PLUGIN_DIR . 'includes/class-edd-logging.php';
175         require_once EDD_PLUGIN_DIR . 'includes/class-edd-session.php';
176         require_once EDD_PLUGIN_DIR . 'includes/class-edd-roles.php';
177         require_once EDD_PLUGIN_DIR . 'includes/formatting.php';
178         require_once EDD_PLUGIN_DIR . 'includes/widgets.php';
179         require_once EDD_PLUGIN_DIR . 'includes/mime-types.php';
180         require_once EDD_PLUGIN_DIR . 'includes/gateways/functions.php';
181         require_once EDD_PLUGIN_DIR . 'includes/gateways/paypal-standard.php';
182         require_once EDD_PLUGIN_DIR . 'includes/gateways/manual.php';
183         require_once EDD_PLUGIN_DIR . 'includes/discount-functions.php';
184         require_once EDD_PLUGIN_DIR . 'includes/payments/functions.php';
185         require_once EDD_PLUGIN_DIR . 'includes/payments/actions.php';
186         require_once EDD_PLUGIN_DIR . 'includes/misc-functions.php';
187         require_once EDD_PLUGIN_DIR . 'includes/download-functions.php';
188         require_once EDD_PLUGIN_DIR . 'includes/scripts.php';
189         require_once EDD_PLUGIN_DIR . 'includes/post-types.php';
190         require_once EDD_PLUGIN_DIR . 'includes/plugin-compatibility.php';
191         require_once EDD_PLUGIN_DIR . 'includes/emails/functions.php';
192         require_once EDD_PLUGIN_DIR . 'includes/emails/template.php';
193         require_once EDD_PLUGIN_DIR . 'includes/emails/actions.php';
194         require_once EDD_PLUGIN_DIR . 'includes/error-tracking.php';
195         require_once EDD_PLUGIN_DIR . 'includes/user-functions.php';
196         require_once EDD_PLUGIN_DIR . 'includes/query-filters.php';
197         require_once EDD_PLUGIN_DIR . 'includes/tax-functions.php';
198         require_once EDD_PLUGIN_DIR . 'includes/process-purchase.php';
199         require_once EDD_PLUGIN_DIR . 'includes/login-register.php';
200 
201         if( is_admin() ) {
202             require_once EDD_PLUGIN_DIR . 'includes/admin/add-ons.php';
203             require_once EDD_PLUGIN_DIR . 'includes/admin/admin-actions.php';
204             require_once EDD_PLUGIN_DIR . 'includes/admin/admin-notices.php';
205             require_once EDD_PLUGIN_DIR . 'includes/admin/admin-pages.php';
206             require_once EDD_PLUGIN_DIR . 'includes/admin/dashboard-widgets.php';
207             require_once EDD_PLUGIN_DIR . 'includes/admin/export-functions.php';
208             require_once EDD_PLUGIN_DIR . 'includes/admin/thickbox.php';
209             require_once EDD_PLUGIN_DIR . 'includes/admin/upload-functions.php';
210             require_once EDD_PLUGIN_DIR . 'includes/admin/downloads/dashboard-columns.php';
211             require_once EDD_PLUGIN_DIR . 'includes/admin/downloads/metabox.php';
212             require_once EDD_PLUGIN_DIR . 'includes/admin/downloads/contextual-help.php';
213             require_once EDD_PLUGIN_DIR . 'includes/admin/discounts/contextual-help.php';
214             require_once EDD_PLUGIN_DIR . 'includes/admin/discounts/discount-actions.php';
215             require_once EDD_PLUGIN_DIR . 'includes/admin/discounts/discount-codes.php';
216             require_once EDD_PLUGIN_DIR . 'includes/admin/payments/payments-history.php';
217             require_once EDD_PLUGIN_DIR . 'includes/admin/payments/contextual-help.php';
218             require_once EDD_PLUGIN_DIR . 'includes/admin/reporting/contextual-help.php';
219             require_once EDD_PLUGIN_DIR . 'includes/admin/reporting/reports.php';
220             require_once EDD_PLUGIN_DIR . 'includes/admin/reporting/pdf-reports.php';
221             require_once EDD_PLUGIN_DIR . 'includes/admin/reporting/graphing.php';
222             require_once EDD_PLUGIN_DIR . 'includes/admin/settings/display-settings.php';
223             require_once EDD_PLUGIN_DIR . 'includes/admin/settings/contextual-help.php';
224             require_once EDD_PLUGIN_DIR . 'includes/admin/upgrades/upgrade-functions.php';
225             require_once EDD_PLUGIN_DIR . 'includes/admin/upgrades/upgrades.php';
226             require_once EDD_PLUGIN_DIR . 'includes/admin/welcome.php';
227         } else {
228             require_once EDD_PLUGIN_DIR . 'includes/process-download.php';
229             require_once EDD_PLUGIN_DIR . 'includes/shortcodes.php';
230             require_once EDD_PLUGIN_DIR . 'includes/theme-compatibility.php';
231         }
232     }
233 
234     /**
235      * Loads the plugin language files
236      *
237      * @access public
238      * @since 1.4
239      * @return void
240      */
241     public function load_textdomain() {
242         // Set filter for plugin's languages directory
243         $edd_lang_dir = dirname( plugin_basename( EDD_PLUGIN_FILE ) ) . '/languages/';
244         $edd_lang_dir = apply_filters( 'edd_languages_directory', $edd_lang_dir );
245 
246         // Traditional WordPress plugin locale filter
247         $locale        = apply_filters( 'plugin_locale',  get_locale(), 'edd' );
248         $mofile        = sprintf( '%1$s-%2$s.mo', 'edd', $locale );
249 
250         // Setup paths to current locale file
251         $mofile_local  = $edd_lang_dir . $mofile;
252         $mofile_global = WP_LANG_DIR . '/edd/' . $mofile;
253 
254         if ( file_exists( $mofile_global ) ) {
255             // Look in global /wp-content/languages/edd folder
256             load_textdomain( 'edd', $mofile_global );
257         } elseif ( file_exists( $mofile_local ) ) {
258             // Look in local /wp-content/plugins/easy-digital-downloads/languages/ folder
259             load_textdomain( 'edd', $mofile_local );
260         } else {
261             // Load the default language files
262             load_plugin_textdomain( 'edd', false, $edd_lang_dir );
263         }
264     }
265 }
266 
267 endif; // End if class_exists check
268 
269 
270 /**
271  * The main function responsible for returning the one true Easy_Digital_Downloads
272  * Instance to functions everywhere.
273  *
274  * Use this function like you would a global variable, except without needing
275  * to declare the global.
276  *
277  * Example: <?php $edd = EDD(); ?>
278  *
279  * @since 1.4
280  * @return object The one true Easy_Digital_Downloads Instance
281  */
282 function EDD() {
283     return Easy_Digital_Downloads::instance();
284 }
285 
286 // Get EDD Running
287 EDD();
Easy Digital Downloads API documentation generated by ApiGen 2.8.0