Carbon_Fields\Container\Container::check_setup_settings PHP Method

check_setup_settings() public method

Check if all required container settings have been specified
public check_setup_settings ( array &$settings = [] )
$settings array Container settings
    public function check_setup_settings(&$settings = array())
    {
        $invalid_settings = array_diff_key($settings, $this->settings);
        if (!empty($invalid_settings)) {
            Incorrect_Syntax_Exception::raise('Invalid settings supplied to setup(): "' . implode('", "', array_keys($invalid_settings)) . '"');
        }
    }

Usage Example

 /**
  * Check if all required container settings have been specified
  *
  * @param array $settings Container settings
  **/
 public function check_setup_settings(&$settings = array())
 {
     if (isset($settings['show_on'])) {
         $invalid_settings = array_diff_key($settings['show_on'], $this->settings['show_on']);
         if (!empty($invalid_settings)) {
             Incorrect_Syntax_Exception::raise('Invalid show_on settings supplied to setup(): "' . implode('", "', array_keys($invalid_settings)) . '"');
         }
     }
     if (isset($settings['show_on']['post_formats'])) {
         $settings['show_on']['post_formats'] = (array) $settings['show_on']['post_formats'];
     }
     if (isset($settings['show_on']['post_path'])) {
         $page = get_page_by_path($settings['show_on']['post_path']);
         if ($page) {
             $settings['show_on']['page_id'] = $page->ID;
         } else {
             $settings['show_on']['page_id'] = -1;
         }
     }
     // Transform category slug to taxonomy + term slug + term id
     if (isset($settings['show_on']['category'])) {
         $term = get_term_by('slug', $settings['show_on']['category'], 'category');
         if ($term) {
             $settings['show_on']['tax_slug'] = $term->taxonomy;
             $settings['show_on']['tax_term'] = $term->slug;
             $settings['show_on']['tax_term_id'] = $term->term_id;
         }
     }
     return parent::check_setup_settings($settings);
 }