Files
roi-theme/wp-content/plugins/wp-marketing-automations-pro/crm/includes/class-bwfcrm-integrations.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

70 lines
1.5 KiB
PHP
Executable File

<?php
/**
* Integrations Class
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Class BWFCRM_Integrations
*/
#[AllowDynamicProperties]
class BWFCRM_Integrations {
private $_integrations = array();
private static $ins = null;
public static function get_instance() {
if ( null === self::$ins ) {
self::$ins = new self();
}
return self::$ins;
}
public function __construct() {
add_action( 'plugins_loaded', array( $this, 'load_integrations' ) );
}
public function load_integrations() {
$current_dir = __DIR__ . '/integrations';
foreach ( glob( $current_dir . '/class-*.php' ) as $_field_filename ) {
$file_data = pathinfo( $_field_filename );
if ( isset( $file_data['basename'] ) && 'index.php' === $file_data['basename'] ) {
continue;
}
require_once $_field_filename;
}
do_action( 'bwfcrm_integrations_loaded' );
}
public function register( $class ) {
if ( ! class_exists( $class ) || ! method_exists( $class, 'get_instance' ) ) {
return;
}
$slug = strtolower( $class );
if ( false === strpos( $slug, 'bwfcrm_integration_' ) ) {
return;
}
$slug = explode( 'bwfcrm_integration_', $slug )[1];
$this->_integrations[ $slug ] = $class::get_instance();
}
public function get_integration( $slug ) {
if ( empty( $slug ) || ! isset( $this->_integrations[ $slug ] ) ) {
return false;
}
return $this->_integrations[ $slug ];
}
}
if ( class_exists( 'BWFCRM_Integrations' ) ) {
BWFCRM_Core::register( 'integrations', 'BWFCRM_Integrations' );
}