Files
roi-theme/wp-content/plugins/wp-marketing-automations/includes/api/autonami/class-bwfan-api-get-event-data.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

102 lines
3.2 KiB
PHP
Executable File

<?php
class BWFAN_API_Get_Event_Data extends BWFAN_API_Base {
public static $ins;
public $total_count = 0;
public function __construct() {
parent::__construct();
$this->method = WP_REST_Server::READABLE;
$this->route = '/event/';
$this->request_args = array(
'source' => array(
'description' => __( 'Source for get actions.', 'wp-marketing-automations' ),
'type' => 'string',
),
'event_slug' => array(
'description' => __( 'Event slug for get event\'s data', 'wp-marketing-automations' ),
'type' => 'string',
)
);
}
public static function get_instance() {
if ( null === self::$ins ) {
self::$ins = new self();
}
return self::$ins;
}
public function process_api_call() {
$source = ! empty( $this->get_sanitized_arg( 'source', 'key' ) ) ? $this->get_sanitized_arg( 'source', 'text_field' ) : '';
$event_slug = ! empty( $this->get_sanitized_arg( 'event_slug', 'key' ) ) ? $this->get_sanitized_arg( 'event_slug', 'text_field' ) : '';
if ( empty( $source ) || empty( $event_slug ) ) {
return $this->error_response( __( 'Required parameter is missing', 'wp-marketing-automations' ), null, 500 );
}
$actions = BWFAN_Core()->automations->get_all_actions();
if ( ! isset( $actions[ $source ]['actions'] ) ) {
/* translators: 1: Event slug */
return $this->error_response( sprintf( __( 'Action not found for this source %1$s', 'wp-marketing-automations' ), $source ), null, 500 );
}
$event = BWFAN_Core()->sources->get_event( $event_slug );
if ( empty( $event ) ) {
return $this->error_response( __( 'Event not exist', 'wp-marketing-automations' ), null, 500 );
}
$data = [];
$data['actions'] = $actions[ $source ]['actions'];
/**
* Get Event's rules
* @var BWFAN_EVENT
**/
$event_rule_groups = $event->get_rule_group();
$all_rules_group = BWFAN_Core()->rules->get_all_groups();
$all_rules = apply_filters( 'bwfan_rule_get_rule_types', array() );
$rules = [];
foreach ( $event_rule_groups as $rule_group ) {
if ( isset( $all_rules_group[ $rule_group ] ) ) {
$rules[ $rule_group ] = $all_rules_group[ $rule_group ];
}
if ( isset( $all_rules[ $rule_group ] ) ) {
$rules[ $rule_group ]['rules'] = $all_rules[ $rule_group ];
}
if ( ! isset( $rules[ $rule_group ]['rules'] ) ) {
unset( $rules[ $rule_group ] );
}
}
$data['rules'] = $rules;
/**
* Get Event's all merge_tags
**/
$all_merge_tags = BWFAN_Core()->merge_tags->get_all_merge_tags();
$event_merge_tag_groups = $event->get_merge_tag_groups();
$mergetags = [];
foreach ( $event_merge_tag_groups as $merge_tag_group ) {
if ( isset( $all_merge_tags[ $merge_tag_group ] ) ) {
$tag_data = array_map( function ( $tags ) {
return [
'tag_name' => $tags->get_name(),
'tag_description' => $tags->get_description()
];
}, $all_merge_tags[ $merge_tag_group ] );
$mergetags[ $merge_tag_group ] = array_replace( $mergetags, $tag_data );
}
}
$data['merge_tags'] = $mergetags;
return $this->success_response( $data, __( 'Events found', 'wp-marketing-automations' ) );
}
}
BWFAN_API_Loader::register( 'BWFAN_API_Get_Event_Data' );