Files
roi-theme/wp-content/plugins/wp-marketing-automations/includes/api/fields/class-bwfan-api-update-field.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

103 lines
3.2 KiB
PHP
Executable File

<?php
class BWFAN_API_Update_Field extends BWFAN_API_Base {
public static $ins;
public static function get_instance() {
if ( null === self::$ins ) {
self::$ins = new self();
}
return self::$ins;
}
public function __construct() {
parent::__construct();
$this->method = WP_REST_Server::EDITABLE;
$this->route = '/v3/fields/(?P<field_id>[\\d]+)';
$this->response_code = 200;
}
public function default_args_values() {
$args = array(
'group_id' => '',
'name' => '',
'type' => '',
'slug' => '',
'options' => [],
'placeholder' => '',
);
return $args;
}
public function process_api_call() {
$field_id = $this->get_sanitized_arg( 'field_id', 'text_field' );
$group_id = $this->get_sanitized_arg( 'group_id', 'text_field' );
$group_id = ! empty( $group_id ) && is_numeric( $group_id ) ? $group_id : 0;
if ( empty( $field_id ) ) {
$this->response_code = 400;
$response = __( "Field Id is missing", 'wp-marketing-automations' );
return $this->error_response( $response );
}
$slug = $this->get_sanitized_arg( 'slug', 'text_field' );
/** Checking field slug is reserved key or not */
if ( in_array( sanitize_title( $slug ), BWFCRM_Fields::$reserved_keys, true ) ) {
$this->response_code = 400;
/* translators: 1: Field slug */
return $this->error_response( sprintf( __( '%1$s is a reserved key', 'wp-marketing-automations' ), sanitize_title( $slug ) ) );
}
$group = BWFCRM_Group::get_groupby_id( $group_id );
if ( $group_id > 0 && empty( $group ) ) {
$this->response_code = 400;
/* translators: 1: Group ID */
return $this->error_response( sprintf( __( 'Field Group ID %1$d is mandatory', 'wp-marketing-automations' ), $group_id ) ); // phpcs:ignore WordPress.WP.I18n.MissingTranslatorsComment
}
if ( ! isset( $this->args['group_id'] ) ) {
$group_id = false;
}
$field_name = $this->get_sanitized_arg( 'name', 'text_field' );
$type = $this->get_sanitized_arg( 'type', 'text_field' );
$options = $this->get_sanitized_arg( '', 'text_field', $this->args['options'] );
$placeholder = $this->get_sanitized_arg( 'placeholder', 'text_field' );
$mode = $this->get_sanitized_arg( 'mode', 'text_field' );
$vmode = $this->get_sanitized_arg( 'vmode', 'text_field' );
$search = $this->get_sanitized_arg( 'search', 'text_field' );
if ( empty( $slug ) ) {
$this->response_code = 400;
return $this->error_response( __( 'Field slug is mandatory', 'wp-marketing-automations' ) );
}
$update_field = BWFCRM_Fields::update_field( $field_id, $group_id, $field_name, $type, $options, $placeholder, $slug, $mode, $vmode, $search );
$this->response_code = $update_field['status'];
if ( $update_field['status'] == 404 ) {
return $this->error_response( $update_field['message'] );
}
$field = BWFAN_Model_Fields::get( $field_id );
$meta = json_decode( $field['meta'] );
$field['meta'] = $meta;
$field['merge_tag'] = BWFAN_Core()->merge_tags->get_field_tag( $slug );
return $this->success_response( $field, __( 'Field updated', 'wp-marketing-automations' ) );
}
}
BWFAN_API_Loader::register( 'BWFAN_API_Update_Field' );