Files
roi-theme/wp-content/plugins/wp-marketing-automations/modules/abandoned-cart/class-bwfan-ab-load-events.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

56 lines
1.2 KiB
PHP
Executable File

<?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
class BWFAN_AB_Load_Events {
private static $instance = null;
public function __construct() {
add_action( 'bwfan_wc_source_loaded', [ $this, 'load_events' ] );
}
/**
* Ensures only one instance of the class is loaded or can be loaded.
*
* @return BWFAN_AB_Load_Events|null
*/
public static function get_instance() {
if ( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Loads all events of current trigger
*/
public function load_events( $source ) {
if ( false === BWFAN_Common::is_cart_abandonment_active() ) {
return;
}
$resource_dir = __DIR__ . '/events';
if ( file_exists( $resource_dir ) ) {
foreach ( glob( $resource_dir . '/class-*.php' ) as $_field_filename ) {
$event_class = require_once( $_field_filename );
if ( ! is_null( $event_class ) && method_exists( $event_class, 'get_instance' ) ) {
$event_obj = $event_class::get_instance( $source->get_slug() );
$event_obj->load_hooks();
BWFAN_Load_Sources::register_events( $event_obj );
}
}
do_action( 'bwfanac_events_loaded' );
}
}
}
if ( bwfan_is_woocommerce_active() ) {
new BWFAN_AB_Load_Events();
}