public static function apply_default(MEOW_Field $field, MEOW_FieldSet $set, $field_type_class) { if ($field->blank()) { if (isset($field->info->type_options["default_value"])) { $default_value = $field->info->type_options["default_value"]; } // apply default value filters $field->info->field_set(); $info = $set->info(); $set_name = $info->name; $field_name = $field->info->name; if ($info->type == "s") { $filter = "shared"; } else if ($info->type == "p") { $filter = $info->vis("post_types"); } else if ($info->type == "x") { $filter = $info->vis("taxonomies"); } else if ($info->type == "t") { $filter = $info->vis("templates"); } else { $filter = "site"; } $any_filter_key = "mp_field_default"; $filter_key = "mp_default_{$filter}_{$set_name}_{$field_name}"; $field_filter_key = "mp_default_{$set_name}_{$field_name}"; $set_any_filter_key = "mp_default_{$set_name}"; $set_filter_key = "mp_default_{$filter}_{$set_name}"; if (!isset($default_value)) { $default_value = null; } $default_value = apply_filters( $filter_key, $default_value ); $default_value = apply_filters( $field_filter_key, $default_value ); $default_value = apply_filters( $set_filter_key, $default_value, $field_name ); $default_value = apply_filters( $set_any_filter_key, $default_value, $field_name ); // parse value using value_for_set if (!is_null($default_value)) { $default_value = $field->value_for_set($default_value); } $fill = false; if (!is_null($default_value)) { if (is_array($default_value)) { if (count($default_value)) { $fill = true; } } else { if (trim($default_value) != "") { $fill = true; } } } if ($fill) { $field->data( (object) array("prop" => array(), "val" => $default_value, "__blank" => false, "__default" => true) ); } } }