Files
roi-theme/wp-content/plugins/wp-marketing-automations/includes/api/user-preference/class-bwfcrm-api-update-user-preference.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

86 lines
2.6 KiB
PHP
Executable File

<?php
class BWFAN_API_Update_User_Preference extends BWFAN_API_Base {
public static $ins;
public static function get_instance() {
if ( null === self::$ins ) {
self::$ins = new self();
}
return self::$ins;
}
public $contact;
public function __construct() {
parent::__construct();
$this->method = WP_REST_Server::EDITABLE;
$this->route = '/user-preference/(?P<user_id>[\\d]+)';
}
public function default_args_values() {
return array(
'user_id' => 0,
'data' => []
);
}
public function process_api_call() {
/** checking if id present in params **/
$user_id = $this->get_sanitized_arg( 'user_id', 'key' );
if ( empty( $user_id ) ) {
$this->response_code = 404;
return $this->error_response( __( "Please provide the user for the data.", 'wp-marketing-automations' ) );
}
$user_exists = (bool) get_users( array(
'include' => $user_id,
'fields' => 'ID',
) );
if ( ! $user_exists ) {
$this->response_code = 404;
return $this->error_response( __( "Contact doesn't exists with the id : ", 'wp-marketing-automations' ) . $user_id );
}
if ( ! empty( $this->args['data'] ) && is_array( $this->args['data'] ) ) {
$data = $this->args['data'];
}
if ( isset( $data['contact_column'] ) ) {
update_user_meta( $user_id, '_bwfan_contact_columns', $data['contact_column'] );
}
if ( isset( $data['contact_columnv2'] ) ) {
update_user_meta( $user_id, '_bwfan_contact_columns_v2', $data['contact_columnv2'] );
}
if ( isset( $data['campaign_column'] ) ) {
update_user_meta( $user_id, '_bwfan_broadcast_columns', $data['campaign_column'] );
}
if ( isset( $data['welcome_note_dismiss'] ) ) {
update_user_meta( $user_id, '_bwfan_welcome_note_dismissed', $data['welcome_note_dismiss'] );
}
if ( isset( $data['bwfan_header_notification'] ) ) {
$userdata = get_user_meta( $user_id, '_bwfan_header_notification', true );
$userdata = empty( $userdata ) && ! is_array( $userdata ) ? [] : $userdata;
$userdata[] = $data['bwfan_header_notification'];
$userdata = array_values( array_filter( array_unique( $userdata ) ) );
update_user_meta( $user_id, '_bwfan_header_notification', $userdata );
}
if ( isset( $data['bwfan_failed_automations'] ) ) {
update_user_meta( $user_id, 'bwfan_failed_automations', [
'count' => 0,
'time' => time()
] );
}
if ( isset( $data['table_sort_data'] ) ) {
update_user_meta( $user_id, '_bwfan_table_sort_data', $data['table_sort_data'] );
}
return $this->success_response( [], __( "Preferences Updated ", 'wp-marketing-automations' ) );
}
}
BWFAN_API_Loader::register( 'BWFAN_API_Update_User_Preference' );