70 lines
1.3 KiB
PHP
70 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;
|
|
}
|
|
}
|