disable(self::getIntegrationName()); } public static function uninstall(): void { if (!self::loadAcyMailingLibrary()) { return; } $pluginClass = new PluginClass(); $pluginClass->deleteByFolderName(self::getIntegrationName()); } public function register(array &$integrations, string $acyVersion): void { if (version_compare($acyVersion, '10.4.0', '>=')) { $integrations[] = [ 'path' => __DIR__, 'className' => self::INTEGRATION_PLUGIN_NAME, ]; } } public function hposCompatibility() { if (class_exists(\Automattic\WooCommerce\Utilities\FeaturesUtil::class)) { \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility('custom_order_tables', __FILE__, true); } } public function registerBlock($categories) { return array_merge( $categories, [ [ 'slug' => 'acymailing-wc-block', 'title' => acym_translation('ACYM_WOO_CHECKOUT_BLOCK'), ], ] ); } public function initBlock() { require_once __DIR__.DIRECTORY_SEPARATOR.'acymailing-wc-block-blocks-integration.php'; add_action( 'woocommerce_blocks_cart_block_registration', function ($integration_registry) { $integration_registry->register(new AcymailingWcBlock()); } ); add_action( 'woocommerce_blocks_checkout_block_registration', function ($integration_registry) { $integration_registry->register(new AcymailingWcBlock()); } ); } private static function getIntegrationName(): string { return strtolower(substr(self::INTEGRATION_PLUGIN_NAME, 7)); } private static function loadAcyMailingLibrary(): bool { $ds = DIRECTORY_SEPARATOR; $vendorFolder = dirname(__DIR__).$ds.'acymailing'.$ds.'vendor'; $helperFile = dirname(__DIR__).$ds.'acymailing'.$ds.'back'.$ds.'Core'.$ds.'init.php'; return file_exists($vendorFolder) && include_once $helperFile; } } new AcyMailingIntegrationForWooCommerce();