function ( Loader $loader, Admin $admin, AC_Public $public, I18n $i18n, Cart_Updated $cart_updated_event, Cart_Emptied $cart_emptied_event, Set_Connection_Id_Cache_Command $set_connection_id_cache_command, Create_Or_Update_Connection_Option_Command $c_or_u_co_command, Create_And_Save_Cart_Id $create_and_save_cart_id_command, Update_Cart_Command $update_cart_command, Delete_Cart_Id $delete_cart_id_command, Add_Cart_Id_To_Order $add_cart_id_to_order_command, Add_Accepts_Marketing_To_Customer_Meta $add_am_to_meta_command, Clear_User_Meta_Command $clear_user_meta_command, Sync_Guest_Abandoned_Cart_Command $sync_guest_abandoned_cart_command ) { $version = defined( 'ACTIVECAMPAIGN_FOR_WOOCOMMERCE_VERSION' ) ? ACTIVECAMPAIGN_FOR_WOOCOMMERCE_VERSION : '1.0.0'; $plugin_name = defined( 'ACTIVECAMPAIGN_FOR_WOOCOMMERCE_PLUGIN_NAME_KEBAB' ) ? ACTIVECAMPAIGN_FOR_WOOCOMMERCE_PLUGIN_NAME_KEBAB : 'activecampaign-for-woocommerce'; return new Activecampaign_For_Woocommerce( $version, $plugin_name, $loader, $admin, $public, $i18n, $cart_updated_event, $cart_emptied_event, $set_connection_id_cache_command, $c_or_u_co_command, $create_and_save_cart_id_command, $update_cart_command, $delete_cart_id_command, $add_cart_id_to_order_command, $add_am_to_meta_command, $clear_user_meta_command, $sync_guest_abandoned_cart_command ); }, Add_Accepts_Marketing_To_Customer_Meta::class => function ( LoggerInterface $logger ) { return new Add_Accepts_Marketing_To_Customer_Meta( $logger ); }, Admin::class => function ( ContainerInterface $c ) { $version = defined( 'ACTIVECAMPAIGN_FOR_WOOCOMMERCE_VERSION' ) ? ACTIVECAMPAIGN_FOR_WOOCOMMERCE_VERSION : '1.0.0'; $plugin_name = defined( 'ACTIVECAMPAIGN_FOR_WOOCOMMERCE_PLUGIN_NAME_KEBAB' ) ? ACTIVECAMPAIGN_FOR_WOOCOMMERCE_PLUGIN_NAME_KEBAB : 'activecampaign-for-woocommerce'; $validator = $c->get( Activecampaign_For_Woocommerce_Admin_Settings_Validator::class ); $event = new Activecampaign_For_Woocommerce_Admin_Settings_Updated_Event(); return new Admin( $plugin_name, $version, $validator, $event ); }, Api_Client::class => function () { $settings = get_option( ACTIVECAMPAIGN_FOR_WOOCOMMERCE_DB_OPTION_NAME ); $api_uri = isset( $settings['api_url'] ) ? $settings['api_url'] : null; $api_key = isset( $settings['api_key'] ) ? $settings['api_key'] : null; return new Api_Client( $api_uri, $api_key ); }, AC_Public::class => function ( Admin $admin ) { $version = defined( 'ACTIVECAMPAIGN_FOR_WOOCOMMERCE_VERSION' ) ? ACTIVECAMPAIGN_FOR_WOOCOMMERCE_VERSION : '1.0.0'; $plugin_name = defined( 'ACTIVECAMPAIGN_FOR_WOOCOMMERCE_PLUGIN_NAME_KEBAB' ) ? ACTIVECAMPAIGN_FOR_WOOCOMMERCE_PLUGIN_NAME_KEBAB : 'activecampaign-for-woocommerce'; return new AC_Public( $plugin_name, $version, $admin ); }, Create_And_Save_Cart_Id::class => function ( LoggerInterface $logger ) { return new Create_And_Save_Cart_Id( $logger ); }, Create_Or_Update_Connection_Option_Command::class => function ( Admin $admin, Connection_Option_Repository $repository, LoggerInterface $logger ) { return new Create_Or_Update_Connection_Option_Command( $admin, $repository, null, $logger ); }, Update_Cart_Command::class => function ( Admin $admin, Ecom_Order_Factory $factory, Ecom_Order_Repository $order_repository, Ecom_Customer_Repository $customer_repository, LoggerInterface $logger ) { return new Update_Cart_Command( null, null, $admin, $factory, $order_repository, $customer_repository, $logger ); }, Set_Connection_Id_Cache_Command::class => function ( Admin $admin, Connection_Repository $connection_repository, LoggerInterface $logger ) { return new Set_Connection_Id_Cache_Command( $admin, $connection_repository, $logger ); }, Sync_Guest_Abandoned_Cart_Command::class => function ( Admin $admin, Ecom_Order_Factory $factory, Ecom_Order_Repository $order_repository, Ecom_Customer_Repository $customer_repository ) { return new Sync_Guest_Abandoned_Cart_Command( null, null, null, $admin, $factory, $order_repository, $customer_repository ); }, LoggerInterface::class => AcVendor\DI\factory( function () { return new Log(); } ), );