Skip to main content

Product Categories Endpoints

Extends WooCommerce Product Categories to only return categories associated with appointable products.

Endpoints

List Product Categories

GET /wc-appointments/v1/products/categories

Get a collection of product categories that have at least one associated appointable product.

Permissions: Public read for published categories.

Behavior:

  • Query filter (terms_clauses) joins with term_relationships, term_taxonomy, terms, and posts tables
  • Restricts categories to only those with published appointment products
  • All standard WooCommerce Product Categories fields are included

Response Fields:

Standard WooCommerce Product Categories fields:

  • id (int)
  • name (string)
  • slug (string)
  • parent (int)
  • description (string)
  • display (string)
  • image (object|null)
  • menu_order (int)
  • count (int)

Example Request:

GET /wp-json/wc-appointments/v1/products/categories

Example Response:

[
{
"id": 10,
"name": "Hair Services",
"slug": "hair-services",
"parent": 0,
"description": "All hair-related appointment services",
"display": "default",
"image": null,
"menu_order": 0,
"count": 5
}
]

Get Single Product Category

GET /wc-appointments/v1/products/categories/{id}

Get a single product category by ID.

Permissions: Public read for published categories.

Behavior:

  • Validates the category has at least one associated appointment product before returning
  • Returns 404 if category has no appointment products

Response: Same fields as list endpoint, single object.


Use Cases

  1. Category Filtering - Filter appointment products by category
  2. Navigation - Build category-based navigation for appointment products
  3. Product Discovery - Help users find appointment products by category