WooCommerce::init_hooksprivateWC 2.3

Hook into actions and filters.

Method of the class: WooCommerce{}

No Hooks.

Returns

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->init_hooks();

Changelog

Since 2.3 Introduced.

WooCommerce::init_hooks() code WC 10.7.0

private function init_hooks() {
	register_activation_hook( WC_PLUGIN_FILE, array( 'WC_Install', 'install' ) );
	register_shutdown_function( array( $this, 'log_errors' ) );

	add_action( 'plugins_loaded', array( $this, 'on_plugins_loaded' ), -1 );
	add_action( 'plugins_loaded', array( $this, 'init_customizer' ) );
	add_action( 'plugins_loaded', array( $this, 'init_jetpack_connection_config' ), 1 );
	add_action( 'admin_notices', array( $this, 'build_dependencies_notice' ) );
	add_action( 'after_setup_theme', array( $this, 'setup_environment' ) );
	add_action( 'after_setup_theme', array( $this, 'include_template_functions' ), 11 );
	add_action( 'load-post.php', array( $this, 'includes' ) );
	add_action( 'init', array( $this, 'init' ), 0 );
	add_action( 'init', array( 'WC_Shortcodes', 'init' ) );
	add_action( 'init', array( 'WC_Emails', 'init_transactional_emails' ) );
	add_action( 'init', array( $this, 'add_image_sizes' ) );
	add_action( 'init', array( $this, 'load_rest_api' ) );
	if ( $this->is_request( 'admin' ) || ( $this->is_rest_api_request() && ! $this->is_store_api_request() ) || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
		add_action( 'init', array( 'WC_Site_Tracking', 'init' ) );
	}
	add_action( 'switch_blog', array( $this, 'wpdb_table_fix' ), 0 );
	add_action( 'activated_plugin', array( $this, 'activated_plugin' ) );
	add_action( 'deactivated_plugin', array( $this, 'deactivated_plugin' ) );
	add_action( 'woocommerce_installed', array( $this, 'add_woocommerce_inbox_variant' ) );
	add_action( 'woocommerce_updated', array( $this, 'add_woocommerce_inbox_variant' ) );
	add_action( 'rest_api_init', array( $this, 'register_wp_admin_settings' ) );
	add_action( 'woocommerce_installed', array( $this, 'add_woocommerce_remote_variant' ) );
	add_action( 'woocommerce_updated', array( $this, 'add_woocommerce_remote_variant' ) );
	add_action( 'woocommerce_newly_installed', 'wc_set_hooked_blocks_version', 10 );
	add_action( 'update_option_woocommerce_allow_tracking', array( $this, 'get_tracking_history' ), 10, 2 );
	add_action( 'update_option_woocommerce_allow_tracking', array( $this, 'handle_tracking_setting_change' ), 10, 2 );
	add_action( 'action_scheduler_ensure_recurring_actions', array( $this, 'register_recurring_actions' ) );
	add_action( 'action_scheduler_init', array( $this, 'add_recurring_action_wrappers' ) );

	add_filter( 'robots_txt', array( $this, 'robots_txt' ) );
	add_filter( 'wp_plugin_dependencies_slug', array( $this, 'convert_woocommerce_slug' ) );
	add_filter( 'woocommerce_register_log_handlers', array( $this, 'register_remote_log_handler' ) );

	// These classes set up hooks on instantiation.
	$container = wc_get_container();
	$container->get( ProductDownloadDirectories::class );
	$container->get( DownloadPermissionsAdjuster::class );
	$container->get( AssignDefaultCategory::class );
	$container->get( DataRegenerator::class );
	$container->get( LookupDataStore::class );
	$container->get( MatchImageBySKU::class );
	$container->get( RestockRefundedItemsAdjuster::class );
	$container->get( CustomOrdersTableController::class );
	$container->get( ProductCacheController::class );
	$container->get( OptionSanitizer::class );
	$container->get( BatchProcessingController::class );
	$container->get( FeaturesController::class );
	$container->get( WebhookUtil::class );
	$container->get( Marketplace::class );
	$container->get( TimeUtil::class );
	$container->get( ComingSoonAdminBarBadge::class );
	$container->get( ComingSoonCacheInvalidator::class );
	$container->get( ComingSoonRequestHandler::class );
	$container->get( OrderCountCacheService::class );
	$container->get( EmailImprovements::class );
	$container->get( AddressProviderController::class );
	$container->get( AbilitiesRegistry::class );
	$container->get( MCPAdapterProvider::class );
	$container->get( ProductVersionStringInvalidator::class );
	$container->get( OrdersVersionStringInvalidator::class );
	$container->get( TaxRateVersionStringInvalidator::class );

	// Feature flags.
	if ( Constants::is_true( 'WOOCOMMERCE_BIS_ALPHA_ENABLED' ) ) {
		$container->get( StockNotifications::class );
	}

	/**
	 * These classes have a register method for attaching hooks.
	 */
	$container->get( Automattic\WooCommerce\Internal\Utilities\PluginInstaller::class )->register();
	$container->get( Automattic\WooCommerce\Internal\TransientFiles\TransientFilesEngine::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Orders\OrderAttributionController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Orders\OrderAttributionBlocksController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\CostOfGoodsSold\CostOfGoodsSoldController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Admin\Settings\PaymentsController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Admin\Settings\PaymentsProviders\WooPayments\WooPaymentsController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Utilities\LegacyRestApiStub::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Email\EmailStyleSync::class )->register();
	$container->get( Automattic\WooCommerce\Admin\Features\Fulfillments\FulfillmentsController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Admin\Agentic\AgenticController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\ProductFeed\ProductFeed::class )->register();
	$container->get( Automattic\WooCommerce\Internal\PushNotifications\PushNotifications::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Orders\PointOfSaleEmailHandler::class )->register();

	// Classes inheriting from RestApiControllerBase.
	$container->get( Automattic\WooCommerce\Internal\ReceiptRendering\ReceiptRenderingRestController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Orders\OrderActionsRestController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Orders\OrderStatusRestController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Admin\Settings\PaymentsRestController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Admin\Settings\PaymentsProviders\WooPayments\WooPaymentsRestController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Admin\EmailPreview\EmailPreviewRestController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\Admin\Emails\EmailListingRestController::class )->register();

	$container->get( Automattic\WooCommerce\Internal\ProductFilters\MainQueryController::class )->register();
	$container->get( Automattic\WooCommerce\Internal\ProductFilters\CacheController::class )->register();

	// Integration point between legacy reports and orders APIs (the reports caches invalidation focused).
	\WC_Admin_Reports::register_orders_hook_handlers();
}