Files
roi-theme/wp-content/plugins/wp-marketing-automations/woofunnels/contact/class-bwf-contacts.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

134 lines
2.9 KiB
PHP
Executable File

<?php
/**
* Contact Controller Class
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( ! class_exists( 'BWF_Contacts' ) ) {
/**
* Class BWF_Contacts
*
*/
#[AllowDynamicProperties]
class BWF_Contacts {
/**
* @var static instance
*/
private static $ins;
/**
* public db_operations $db_operations
*/
public $db_operations;
public $child_entities;
public $cached_contact_obj;
/**
* Get the contact details for the email passed if this uid exits other create a new contact with this email
*
* @param $email
*/
public function __construct() {
$this->db_operations = WooFunnels_DB_Operations::get_instance();
$this->get_registerd_child_entities();
$this->cached_contact_obj = [
'cid' => [],
'uid' => [],
'email' => [],
'wp_id' => [],
'phone' => [],
];
}
/**
* @return mixed|void
*/
public static function get_registerd_child_entities() {
$entities = apply_filters( 'bwf_child_entities', array( 'customer' => 'WooFunnels_Customer' ) );
return $entities;
}
/**
* @return BWF_Contacts
*/
public static function get_instance() {
if ( null === self::$ins ) {
self::$ins = new self;
}
return self::$ins;
}
/**
* Get contacts based on different criteria
*/
public function get_contacts( $args = array() ) {
$default_args = array(
'min_creation_date' => '',
'max_creation_date' => '',
);
$args = wp_parse_args( $args, $default_args );
if ( ! empty( $args['min_creation_date'] ) ) {
$args['min_creation_date'] = strtotime( 'midnight', strtotime( sanitize_text_field( $args['min_creation_date'] ) ) );
}
if ( ! empty( $args['max_creation_date'] ) ) {
$args['max_creation_date'] = strtotime( 'midnight', strtotime( sanitize_text_field( $args['max_creation_date'] ) ) );
}
$customers = $this->db_operations->get_contacts( $args );
return $customers;
}
/**
* get contact by given field
*/
public function get_contact_by( $field, $value ) {
if ( 'id' === $field ) {
return new WooFunnels_Contact( '', '', '', $value );
}
if ( 'wpid' === $field ) {
return new WooFunnels_Contact( $value );
}
if ( 'email' === $field ) {
return new WooFunnels_Contact( '', $value );
}
if ( 'phone' === $field ) {
return new WooFunnels_Contact( '', '', $value );
}
if ( 'uid' === $field ) {
return new WooFunnels_Contact( '', '', '', '', $value );
}
}
/**
* Getting date range
*
* @param $range
*
*/
public function get_date_range( $range ) {
$result = array();
$result['start_date'] = max( strtotime( '-20 years' ), strtotime( sanitize_text_field( $range['start_date'] ) ) );
$result['end_date'] = strtotime( 'midnight', current_time( 'timestamp' ) );
if ( ! empty( $range['end_date'] ) ) {
$result['end_date'] = strtotime( 'midnight', strtotime( sanitize_text_field( $range['end_date'] ) ) );
}
return $result;
}
}
}