* WooCommerce Integrations class
* Loads Integrations into WooCommerce.
* @package WooCommerce\Classes\Integrations
defined( 'ABSPATH' ) || exit;
public $integrations = array();
* Initialize integrations.
public function __construct() {
do_action( 'woocommerce_integrations_init' );
$load_integrations = array(
'WC_Integration_MaxMind_Geolocation',
$load_integrations = apply_filters( 'woocommerce_integrations', $load_integrations );
// Load integration classes.
foreach ( $load_integrations as $integration ) {
$load_integration = new $integration();
$this->integrations[ $load_integration->id ] = $load_integration;
* Return loaded integrations.
public function get_integrations() {
return $this->integrations;
* Return a desired integration.
* @param string $id The id of the integration to get.
* @return mixed|null The integration if one is found, otherwise null.
public function get_integration( $id ) {
if ( isset( $this->integrations[ $id ] ) ) {
return $this->integrations[ $id ];