=') && version_compare(get_bloginfo('version'), WS_PLUGIN__S2MEMBER_MIN_WP_VERSION, '>=') && !isset($GLOBALS['WS_PLUGIN__']['s2member'])) { $GLOBALS['WS_PLUGIN__']['s2member']['l'] = __FILE__; /* Hook before loaded. */ do_action('ws_plugin__s2member_before_loaded'); /* System configuraton. */ include_once dirname(__FILE__).'/src/includes/syscon.inc.php'; /* Hooks and Filters. */ include_once dirname(__FILE__).'/src/includes/hooks.inc.php'; /* Hook after system config & Hooks are loaded. */ do_action('ws_plugin__s2member_config_hooks_loaded'); /* Load a possible Pro module, if/when available. */ if(apply_filters('ws_plugin__s2member_load_pro', TRUE)) { if(is_file($_s2member_pro = dirname(__FILE__).'-pro/pro-module.php')) include_once $_s2member_pro; else if(is_file($_s2member_pro = WP_PLUGIN_DIR.'/'.basename(dirname(__FILE__)).'-pro/pro-module.php')) include_once $_s2member_pro; unset($_s2member_pro); // Housekeeping. } /* Configure options and their defaults. */ ws_plugin__s2member_configure_options_and_their_defaults(); /* Function includes. */ include_once dirname(__FILE__).'/src/includes/funcs.inc.php'; /* Include Shortcodes. */ include_once dirname(__FILE__).'/src/includes/codes.inc.php'; /* Hooks after loaded. */ do_action('ws_plugin__s2member_loaded'); do_action('ws_plugin__s2member_after_loaded'); } /* Else NOT compatible. Do we need admin compatibility errors now? */ else if(is_admin()) // Admin compatibility errors. { if(!version_compare(PHP_VERSION, WS_PLUGIN__S2MEMBER_MIN_PHP_VERSION, '>=')) { add_action('all_admin_notices', function(){ echo '
You need PHP v' . WS_PLUGIN__S2MEMBER_MIN_PHP_VERSION . '+ to use the s2Member plugin.
You need WordPress v' . WS_PLUGIN__S2MEMBER_MIN_WP_VERSION . '+ to use the s2Member plugin.
| ⚠️ PayPal has given some trouble recently with encrypted buttons, so for the time being it\'s recommended to leave encryption disabled and allow non-encrypted payments. See: s2Member > PayPal Options > Account Details > Button Encryption |