rest_url( 'abmahn-shield/v1/' ), 'nonce' => wp_create_nonce( 'wp_rest' ), 'siteUrl' => home_url(), 'adminUrl' => admin_url( 'admin.php' ), ] ); } public function register_rest_routes() { $scanner = new Abmahn_Shield_Scanner(); register_rest_route( 'abmahn-shield/v1', '/quick-scan', [ 'methods' => 'POST', 'callback' => [ $scanner, 'handle_quick_scan' ], 'permission_callback' => function () { return current_user_can( 'manage_woocommerce' ); }, ] ); register_rest_route( 'abmahn-shield/v1', '/deep-scan', [ 'methods' => 'POST', 'callback' => [ $scanner, 'handle_deep_scan' ], 'permission_callback' => function () { return current_user_can( 'manage_woocommerce' ); }, ] ); register_rest_route( 'abmahn-shield/v1', '/last-scan', [ 'methods' => 'GET', 'callback' => [ $scanner, 'handle_last_scan' ], 'permission_callback' => function () { return current_user_can( 'manage_woocommerce' ); }, ] ); } } function abmahn_shield() { return Abmahn_Shield::instance(); } add_action( 'plugins_loaded', function () { if ( class_exists( 'WooCommerce' ) ) { abmahn_shield(); } } ); register_activation_hook( __FILE__, function () { if ( ! class_exists( 'WooCommerce' ) ) { deactivate_plugins( plugin_basename( __FILE__ ) ); wp_die( 'Abmahn-Shield benötigt WooCommerce. Bitte installiere und aktiviere WooCommerce zuerst.', 'Plugin-Abhängigkeit fehlt', [ 'back_link' => true ] ); } } );