User properties are durable attributes associated with a shopper rather than with a single page view or order. Examples include customer type, wholesale status, preferred product category, loyalty tier, region, language, and consent status. When these properties are collected and used responsibly, they allow a WooCommerce store to make relevant decisions across sessions and channels instead of treating every visitor the same.
User properties versus event data
Event data describes something that happened: a product was viewed, an item was added to the cart, or an order was completed. User properties describe the shopper who performed the action. A product-view event might include the product ID and price, while the associated user properties might identify the shopper as a repeat customer in the United Kingdom who prefers running products.
This distinction is important for personalization. An event can trigger an immediate response, such as showing a related product after an add-to-cart action. A user property can influence many experiences over time, including navigation, merchandising, email content, promotions, and customer service workflows.
Useful WooCommerce user properties
- Customer lifecycle: visitor, first-time buyer, repeat customer, inactive customer, or high-value customer.
- Business relationship: retail customer, wholesale buyer, trade account, agency account, or internal staff.
- Purchase preferences: preferred categories, brands, sizes, colors, subscription products, or average order value range.
- Geographic context: country, region, shipping zone, or store location, provided the data is collected and used lawfully.
- Operational status: eligible for free shipping, tax-exempt, awaiting account approval, or enrolled in a loyalty program.
- Communication preferences: email consent, SMS consent, preferred language, or preferred contact channel.
Use stable, meaningful values rather than creating a separate property for every temporary condition. For example, customer_segment=repeat_customer is generally more useful than last_banner_seen=summer-sale-2025. Temporary campaign state belongs in campaign or session data unless it has a clear long-term purpose.
Start with a property model
Agencies should define the property model before adding personalization rules. For each property, document its name, allowed values, source, update trigger, destination systems, retention period, and owner. This prevents different plugins and integrations from creating conflicting definitions such as vip, VIP customer, and high_value for the same segment.
A simple model might look like this:
{
"customer_segment": "repeat_customer",
"preferred_category": "running-shoes",
"loyalty_tier": "gold",
"preferred_language": "en-GB",
"marketing_email_consent": true
}
Keep sensitive information out of general personalization properties. Do not use raw payment details, passwords, or unnecessary health, financial, or other special-category data. Where possible, store an internal customer ID and controlled segment values rather than copying personal details into analytics or third-party systems.
Derive properties from WooCommerce behavior
Some properties can be calculated from WooCommerce data. For example, a customer can become a repeat customer after completing a second order, or a preferred category can be calculated from completed orders over the last twelve months. Derived properties should have clear update rules so that they do not become stale.
The following example updates a customer segment when an order is marked completed. The exact metadata keys and segment thresholds should be adapted to the store’s business rules.
add_action( 'woocommerce_order_status_completed', function ( $order_id ) {
$order = wc_get_order( $order_id );
if ( ! $order ) {
return;
}
$user_id = $order->get_user_id();
if ( ! $user_id ) {
return;
}
$completed_orders = wc_get_customer_order_count( $user_id );
$segment = $completed_orders >= 2 ? 'repeat_customer' : 'first_time_buyer';
update_user_meta( $user_id, 'customer_segment', $segment );
} );
For guest customers, agencies can use a consented first-party identifier or wait until the shopper creates an account. Avoid silently merging guest activity into an identified profile without a documented identity-resolution process and an appropriate legal basis.
Apply properties to storefront experiences
User properties can control a range of experiences, but the rule should solve a specific customer or commercial problem. A wholesale customer might see case quantities and trade pricing, while a retail customer sees consumer pricing. A returning customer might receive replenishment recommendations instead of the same introductory message shown to a new visitor.
For example, a store could display a category-specific recommendation block for customers whose preferred category is stored in user meta:
add_action( 'woocommerce_after_shop_loop', function () {
if ( ! is_user_logged_in() ) {
return;
}
$category = get_user_meta( get_current_user_id(), 'preferred_category', true );
if ( ! $category ) {
return;
}
echo '<section class="personalized-category">';
echo '<h2>Recommended for your interests</h2>';
echo do_shortcode( '[products category="' . esc_attr( $category ) . '" limit="4" columns="4"]' );
echo '</section>';
} );
Do not use personalization to hide essential products, pricing, policies, or accessibility features. It is safer to add relevant recommendations, sort optional content, or tailor messaging while preserving a predictable core shopping experience.
Use properties in marketing and analytics
When sending customer data to an analytics or marketing platform, map WooCommerce properties to a controlled schema. Send a property when it is created or changed, and avoid sending the same value inconsistently from multiple plugins. A customer segment can support lifecycle campaigns, while preferred category can inform product recommendations and content selection.
Separate personalization data from consent state. A property such as preferred_category describes a shopper’s interests; marketing_email_consent determines whether promotional email may be sent. The latter must be enforced by the marketing system and should not be inferred from browsing behavior.
For analytics, use properties to compare outcomes by segment without exposing unnecessary identity. Useful reports include conversion rate for first-time versus repeat customers, average order value by loyalty tier, and revenue from personalized recommendations compared with a non-personalized control group.
Handle caching and identity correctly
Personalized output creates technical challenges on WooCommerce sites that use full-page caching or a content delivery network. A page rendered for one logged-in customer must not be served to another customer. Keep user-specific content out of publicly cached HTML, use AJAX or client-side requests for small personalized components, and configure cache variation carefully for any property that affects the response.
Logged-out personalization should use a consented first-party mechanism and should not expose an account’s private properties. Logged-in personalization can use the current WordPress user, but authorization checks are still required before showing account-specific prices, discounts, or order information.
Measure incremental value
Track the exposure and outcome of each personalization rule. A useful implementation records the rule or variant shown, the relevant property at the time of exposure, and a subsequent event such as click, add to cart, purchase, or unsubscribe. Do not count a recommendation as successful merely because it was rendered.
- Define the business metric, such as recommendation click-through rate, conversion rate, or margin per session.
- Keep a control group that receives the standard experience.
- Compare results by meaningful segments and device types.
- Check negative effects, including increased returns, discount dependency, slower pages, and reduced product discovery.
- Retire properties and rules that no longer improve the experience.
Protect privacy and maintain data quality
Personalization should follow the store’s privacy notice, consent requirements, retention policy, and data-subject rights process. Give customers a practical way to correct or delete profile information, and ensure that deletion or anonymization reaches connected marketing and analytics systems where required.
Review properties regularly for accuracy. A preferred category based on one old purchase may be misleading, while a customer segment based on recent completed orders can remain useful. Add timestamps or freshness rules to derived attributes, validate allowed values, and log updates so an agency can diagnose why a customer received a particular experience.