woocommerce/includes/class-wc-integrations.php

71 lines
1.3 KiB
PHP
Raw Normal View History

2012-04-30 19:50:35 +00:00
<?php
/**
* WooCommerce Integrations class
2012-08-15 18:15:06 +00:00
*
2012-04-30 19:50:35 +00:00
* Loads Integrations into WooCommerce.
*
* @version 3.9.0
2020-08-05 16:36:24 +00:00
* @package WooCommerce\Classes\Integrations
*/
defined( 'ABSPATH' ) || exit;
/**
* Integrations class.
2012-04-30 19:50:35 +00:00
*/
class WC_Integrations {
2012-08-15 18:15:06 +00:00
/**
* Array of integrations.
*
* @var array
*/
2014-12-16 11:36:26 +00:00
public $integrations = array();
2012-08-15 18:15:06 +00:00
2016-07-11 14:56:35 +00:00
/**
* Initialize integrations.
*/
public function __construct() {
2012-08-15 18:15:06 +00:00
do_action( 'woocommerce_integrations_init' );
2012-08-15 18:15:06 +00:00
$load_integrations = array(
'WC_Integration_MaxMind_Geolocation',
);
$load_integrations = apply_filters( 'woocommerce_integrations', $load_integrations );
2012-08-15 18:15:06 +00:00
// Load integration classes.
2012-04-30 19:50:35 +00:00
foreach ( $load_integrations as $integration ) {
2012-08-15 18:15:06 +00:00
2012-04-30 19:50:35 +00:00
$load_integration = new $integration();
2012-08-15 18:15:06 +00:00
$this->integrations[ $load_integration->id ] = $load_integration;
2012-04-30 19:50:35 +00:00
}
}
2012-08-15 18:15:06 +00:00
/**
* Return loaded integrations.
*
* @return array
*/
public function get_integrations() {
2012-04-30 19:50:35 +00:00
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;
}
}