SureCart fires filters and actions when models are hydrated with data. These hooks allow you to modify model properties, add dynamic computed properties, or transform data as it’s being populated into the model.
Filter individual attribute values as they are being set on a model during hydration. This allows you to transform, validate, or modify any attribute before it’s stored on the model.Parameters:
$value(mixed) – The value being set for the attribute
$model(Model) – The model instance
Returns: The filtered value to be stored
// Transform subscription status for displayadd_filter( 'surecart/subscription/attributes/status', function( $value, $subscription ) { // Store original and add formatted version $subscription->status_label = ucfirst( str_replace( '_', ' ', $value ) ); return $value;}, 10, 2 );// Modify product name during hydrationadd_filter( 'surecart/product/attributes/name', function( $value, $product ) { // Append badge for certain products if ( ! empty( $product->metadata->is_new ) ) { return $value . ' (New!)'; } return $value;}, 10, 2 );// Convert timestamps to Carbon instancesadd_filter( 'surecart/order/attributes/created_at', function( $value, $order ) { $order->created_date = wp_date( 'F j, Y', $value ); return $value;}, 10, 2 );
Use this filter to create dynamic computed properties, normalize data formats, or add display-ready versions of raw values.
Filter metadata before it’s set on a model during hydration. Useful for ensuring metadata structure, adding defaults, or transforming metadata values.Parameters: