Files
roi-theme/wp-content/plugins/wp-marketing-automations-pro/modules/autonami/events/class-bwfan-crm-contact-bounced.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

109 lines
2.9 KiB
PHP
Executable File

<?php
#[AllowDynamicProperties]
final class BWFAN_CRM_Contact_Bounced extends BWFAN_Event {
private static $instance = null;
public $contact_id = null;
public $email = null;
public $user_id = null;
private function __construct() {
$this->event_merge_tag_groups = array( 'bwf_contact' );
$this->optgroup_label = esc_html__( 'Contact', 'wp-marketing-automations-pro' );
$this->event_name = esc_html__( 'Contact Bounced', 'wp-marketing-automations-pro' );
$this->event_desc = esc_html__( 'This event runs after contact is bounced.', 'wp-marketing-automations-pro' );
$this->event_rule_groups = array(
'bwf_contact_segments',
'bwf_contact',
'bwf_contact_fields',
'bwf_contact_user',
'bwf_contact_wc',
'bwf_contact_geo',
'bwf_engagement',
'bwf_broadcast'
);
$this->priority = 31;
$this->customer_email_tag = '{{contact_email}}';
$this->v2 = true;
$this->support_v1 = false;
}
public static function get_instance() {
if ( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
public function load_hooks() {
add_action( 'bwfcrm_after_contact_bounced', [ $this, 'process' ], 10 );
}
/**
* Make the required data for the current event and send it asynchronously.
*
* @param $contact
*/
public function process( $contact ) {
if ( ! $contact instanceof WooFunnels_Contact ) {
return;
}
$data = $this->get_default_data();
$data['contact_id'] = $contact->get_id();
$data['email'] = $contact->get_email();
$this->send_async_call( $data );
}
public function get_event_data() {
$data_to_send = [ 'global' => [] ];
$data_to_send['global']['contact_id'] = $this->contact_id;
$data_to_send['global']['email'] = $this->email;
return $data_to_send;
}
public function get_email_event() {
return is_email( $this->email ) ? $this->email : false;
}
public function get_user_id_event() {
if ( is_email( $this->email ) ) {
$user = get_user_by( 'email', absint( $this->email ) );
return ( $user instanceof WP_User ) ? $user->ID : false;
}
return ! empty( absint( $this->user_id ) ) ? absint( $this->user_id ) : false;
}
/**
* Capture the async data for the current event.
*
* @return array|bool
*/
public function capture_v2_data( $automation_data ) {
$this->contact_id = BWFAN_Common::$events_async_data['contact_id'];
$this->email = BWFAN_Common::$events_async_data['email'];
$automation_data['contact_id'] = $this->contact_id;
$automation_data['email'] = $this->email;
return $automation_data;
}
public function get_fields_schema() {
return [];
}
}
/**
* Register this event to a source.
* This will show the current event in dropdown in single automation screen.
*/
if ( class_exists( 'BWFCRM_Contact' ) ) {
return 'BWFAN_CRM_Contact_Bounced';
}