$shortcode, 'default' => $default, 'params' => $params, 'title' => $title, ); // @codingStandardsIgnoreLine $id = md5( serialize( $preset ) ); self::$presets[ $id ] = $preset; return true; } /** * Get specific vendor preset * * @param string $id * * @return mixed array|false * @since 4.8 * */ public function get( $id ) { if ( isset( self::$presets[ $id ] ) ) { return self::$presets[ $id ]; } return false; } /** * Get all vendor presets for specific shortcode * * @param string $shortcode * * @return array * @since 4.8 * */ public function getAll( $shortcode ) { $list = array(); foreach ( self::$presets as $id => $preset ) { if ( $shortcode === $preset['shortcode'] ) { $list[ $id ] = $preset; } } return $list; } /** * Get all default vendor presets * * Include only one default preset per shortcode * * @return array * @since 4.8 * */ public function getDefaults() { $list = array(); $added = array(); foreach ( self::$presets as $id => $preset ) { if ( $preset['default'] && ! in_array( $preset['shortcode'], $added, true ) ) { $added[] = $preset['shortcode']; $list[ $id ] = $preset; } } return $list; } /** * Get ID of default preset for specific shortcode * * If multiple presets are default, return first * * @param string $shortcode * * @return string|null * @since 4.8 * */ public function getDefaultId( $shortcode ) { foreach ( self::$presets as $id => $preset ) { if ( $shortcode === $preset['shortcode'] && $preset['default'] ) { return $id; } } return null; } }