php_ModalSettings.php

<?php
namespace FindStr;

class ModalSettings  extends Settings {

  public function __construct() {

    $this->settings_option_name = 'findstrModalSettings';

    /**
     * Filter the modal settings save path
     *
     * @hook findstr_modal_setting_save_path
     *
     * @param {string} $settings_save_file
     *
     * @return {string} $settings_save_file
     */
    $this->settings_save_file = apply_filters( 'findstr_modal_setting_save_path', 'findstr/modal-settings.json' );
    parent::__construct();
  }

  /**
   * Get the modal settings.
   *
   * @param string $option_name
   * @param $default
   *
   * @return array
   */
  public function get( string $option_name = '', $default = null ): array {

    $settings = parent::get( $option_name, $default );

    //deep transform the settings to ensure they are always an array
    if ( ! is_array( $settings ) && is_object( $settings ) ) {
      $settings = json_decode( wp_json_encode( $settings ), true );
    }

    return $settings;
  }

}