delete( true ); } } } } // Delete plugin options. $options_to_delete = array( 'genius_commerce_version', 'genius_commerce_activated_at', 'genius_commerce_api_key', 'genius_commerce_backend_url', 'genius_commerce_webhook_secret', 'genius_commerce_webhook_settings', 'genius_commerce_registered_webhooks', 'genius_commerce_enable_logging', 'genius_commerce_connection_status', 'genius_commerce_last_connection_check', 'genius_commerce_template_discount_price', 'genius_commerce_template_delivery', 'genius_commerce_custom_css', ); foreach ( $options_to_delete as $option ) { delete_option( $option ); } // Transients have no core API for prefix-wildcard deletion, so this is a // direct (prepared) query. Caching is moot: the plugin is being removed. // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- No core API for wildcard transient deletion; plugin data is being destroyed. $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s OR option_name LIKE %s", '_transient_genius_commerce_%', '_transient_timeout_genius_commerce_%' ) ); // Clear any scheduled hooks. wp_clear_scheduled_hook( 'genius_commerce_cleanup_logs' ); wp_clear_scheduled_hook( 'genius_commerce_webhook_health_check' ); // Flush rewrite rules. flush_rewrite_rules(); } genius_commerce_uninstall_cleanup();