0, 'targetMarginPercent' => 50, 'priceRounding' => 'end99', 'deleteDataOnUninstall' => false, ); } /** * Current settings, defaults filled in. * * @return array */ public function get(): array { $stored = get_option( self::OPTION, array() ); $stored = is_array( $stored ) ? $stored : array(); return array_merge( self::defaults(), array_intersect_key( $stored, self::defaults() ) ); } /** * Validate and save. * * @param mixed $input Decoded JSON. * @return array Validator result. */ public function save( $input ): array { $result = Validator::settings( $input ); if ( $result['ok'] ) { update_option( self::OPTION, $result['value'], false ); } return $result; } }