woocommerce/plugins/woocommerce/includes/class-wc-integrations.php

71 lines
1.3 KiB
PHP

<?php
/**
* WooCommerce Integrations class
*
* Loads Integrations into WooCommerce.
*
* @version 3.9.0
* @package WooCommerce\Classes\Integrations
*/
defined( 'ABSPATH' ) || exit;
/**
* Integrations class.
*/
class WC_Integrations {
/**
* Array of integrations.
*
* @var array
*/
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.
*
* @return array
*/
public function get_integrations() {
return $this->integrations;
}
/**
* Return a desired integration.
*
* @since 3.9.0
* @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 ];
}
return null;
}
}