HEX
Server: Apache/2.4.63 (Unix)
System: Linux TOMS-220NAS 4.4.302+ #86009 SMP Wed Nov 26 18:19:17 CST 2025 x86_64
User: flavio87 (1026)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: /volume1/web/Marchisa-Toman/wp-content/plugins/meta-box-builder/src/Upgrade/Ver404/Fields.php
<?php
namespace MBB\Upgrade\Ver404;

use MetaBox\Support\Arr;

/**
 * Update fields settings from data for AngularJS to React.
 */
class Fields extends Base {
	public function update( $post ) {
		$data   = json_decode( $post->post_excerpt, true );
		$fields = Arr::get( $data, 'fields', [] );

		$this->update_fields( $fields );

		update_post_meta( $post->ID, 'fields', $fields );

		return $fields;
	}

	private function update_fields( &$fields ) {
		$new_fields = [];
		foreach ( $fields as &$field ) {
			$this->update_field( $field );
			$id                  = uniqid();
			$field['_id']        = $id;
			$field['save_field'] = $field['save_field'] ?? true;
			$new_fields[ $id ]   = $field;
		}
		$fields = $new_fields;
	}

	private function update_field( &$field ) {
		$updater = new Field();
		$updater->update( $field );

		if ( isset( $field['fields'] ) ) {
			$this->update_fields( $field['fields'] );
		}
	}
}