array( 'title' => 'Обмен с 1С', 'description' => 'Товары, цены и остатки из 1С, заказы с сайта в 1С (CommerceML).', 'file' => 'modules/onec/class-rushop-onec.php', 'class' => 'RuShop_OneC', 'available' => true, ), 'yookassa' => array( 'title' => 'ЮKassa + СБП', 'description' => 'Приём оплаты и чеки по 54-ФЗ.', 'available' => false, ), 'cdek' => array( 'title' => 'СДЭК', 'description' => 'Расчёт доставки, выбор ПВЗ на карте, создание заказов.', 'available' => false, ), 'legal' => array( 'title' => 'Юрлица', 'description' => 'ИНН с автозаполнением реквизитов, счёт на оплату.', 'available' => false, ), ); } public static function enabled_modules() { return (array) get_option( self::MODULES_OPTION, array( 'onec' ) ); } private function __construct() { if ( ! class_exists( 'WooCommerce' ) ) { add_action( 'admin_notices', function () { echo '

RuShop работает только вместе с WooCommerce. Установите и включите WooCommerce.

'; } ); return; } foreach ( self::modules() as $slug => $module ) { if ( empty( $module['available'] ) || ! in_array( $slug, self::enabled_modules(), true ) ) { continue; } require_once RUSHOP_DIR . $module['file']; new $module['class'](); } if ( is_admin() ) { require_once RUSHOP_DIR . 'includes/class-rushop-admin.php'; new RuShop_Admin(); } } }