1 <?php
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
30
31
32 if ( ! defined( 'ABSPATH' ) ) exit;
33
34 if ( ! class_exists( 'Easy_Digital_Downloads' ) ) :
35
36 37 38 39 40
41 final class Easy_Digital_Downloads {
42
43
44 45 46 47
48 private static $instance;
49
50 51 52 53 54 55
56 private $roles;
57
58 59 60 61 62 63
64 public $fees;
65
66 67 68 69 70 71
72 public $api;
73
74 75 76 77 78 79 80 81 82
83 public $session;
84
85 86 87 88 89 90
91 public $html;
92
93 94 95 96 97 98 99 100 101 102 103 104 105 106 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 125 126 127 128 129
130 private function setup_constants() {
131
132 if ( ! defined( 'EDD_VERSION' ) )
133 define( 'EDD_VERSION', '1.5.1' );
134
135
136 if ( ! defined( 'EDD_PLUGIN_URL' ) )
137 define( 'EDD_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
138
139
140 if ( ! defined( 'EDD_PLUGIN_DIR' ) )
141 define( 'EDD_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
142
143
144 if ( ! defined( 'EDD_PLUGIN_FILE' ) )
145 define( 'EDD_PLUGIN_FILE', __FILE__ );
146 }
147
148 149 150 151 152 153 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 236 237 238 239 240
241 public function load_textdomain() {
242
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
247 $locale = apply_filters( 'plugin_locale', get_locale(), 'edd' );
248 $mofile = sprintf( '%1$s-%2$s.mo', 'edd', $locale );
249
250
251 $mofile_local = $edd_lang_dir . $mofile;
252 $mofile_global = WP_LANG_DIR . '/edd/' . $mofile;
253
254 if ( file_exists( $mofile_global ) ) {
255
256 load_textdomain( 'edd', $mofile_global );
257 } elseif ( file_exists( $mofile_local ) ) {
258
259 load_textdomain( 'edd', $mofile_local );
260 } else {
261
262 load_plugin_textdomain( 'edd', false, $edd_lang_dir );
263 }
264 }
265 }
266
267 endif;
268
269
270 271 272 273 274 275 276 277 278 279 280 281
282 function EDD() {
283 return Easy_Digital_Downloads::instance();
284 }
285
286
287 EDD();