Receber por email
← Voltar para o catálogo

woo-hooks-filters

Master the WordPress hook system for WooCommerce — actions, filters, hook priorities, WooCommerce-specific hooks, and extensibility patterns. Use when adding functionality via hooks or understanding the WooCommerce execution flow.

34estrelas
Atualizado há 5 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add OrcaQubits/agentic-commerce-skills-plugins

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/woo-hooks-filters/svg)](https://www.skillteca.com.br/skills/woo-hooks-filters)

Skills relacionadas

Ver todas de Documentos →

Alerta por categoria

Receba novas skills de Documentos toda segunda

1 email curto, só com as skills novas de Documentos. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

WooCommerce Hooks & Filters

Before writing code

Fetch live docs:

  1. Fetch https://developer.wordpress.org/plugins/hooks/ for WordPress Hooks fundamentals
  2. Web-search site:developer.woocommerce.com hooks for WooCommerce-specific hooks
  3. Web-search woocommerce action filter reference for comprehensive hook listings

How Hooks Work

Actions

Fire at specific points in execution — used for side effects (sending emails, writing logs, rendering HTML):

  • do_action( 'hook_name', $arg1, $arg2 ) — fires the action
  • add_action( 'hook_name', 'callback', $priority, $accepted_args ) — registers a listener
  • remove_action( 'hook_name', 'callback', $priority ) — unregisters a listener
  • Lower $priority = runs earlier (default 10)

Filters

Transform data as it flows through the system — must return a value:

  • apply_filters( 'filter_name', $value, $arg1, $arg2 ) — applies the filter
  • add_filter( 'filter_name', 'callback', $priority, $accepted_args ) — registers a filter
  • Callback receives $value as first argument, must return the (possibly modified) value
  • Chained: each filter's return value is the next filter's input

Priority

  • Default: 10
  • Lower numbers run first (1 before 10 before 99)
  • Use early priorities (1–5) to modify data before others see it
  • Use late priorities (20+) to act on fully-processed data

Key WooCommerce Hooks

Product Hooks

| Hook | Type | When | |------|------|------| | woocommerce_product_get_price | Filter | Price is retrieved | | woocommerce_before_single_product | Action | Before product page renders | | woocommerce_after_single_product_summary | Action | After product summary | | woocommerce_product_options_general_product_data | Action | General tab in product edit | | woocommerce_process_product_meta | Action | Product is saved |

Cart Hooks

| Hook | Type | When | |------|------|------| | woocommerce_before_cart | Action | Before cart page | | woocommerce_cart_calculate_fees | Action | Calculate cart fees | | woocommerce_before_calculate_totals | Action | Before totals calculation | | woocommerce_add_to_cart | Action | Item added to cart | | woocommerce_cart_item_price | Filter | Cart item price display |

Checkout Hooks

| Hook | Type | When | |------|------|------| | woocommerce_before_checkout_form | Action | Before checkout form | | woocommerce_checkout_fields | Filter | Modify checkout fields | | woocommerce_checkout_process | Action | Validate checkout | | woocommerce_checkout_order_processed | Action | Order created from checkout | | woocommerce_payment_complete | Action | Payment completed |

Order Hooks

| Hook | Type | When | |------|------|------| | woocommerce_order_status_changed | Action | Order status transition | | woocommerce_order_status_{from}_to_{to} | Action | Specific status transition | | woocommerce_new_order | Action | New order created | | woocommerce_thankyou | Action | Thank-you page |

Admin Hooks

| Hook | Type | When | |------|------|------| | woocommerce_admin_order_data_after_order_details | Action | After order details in admin | | woocommerce_product_data_tabs | Filter | Product data tabs | | woocommerce_product_data_panels | Action | Product data panels content | | woocommerce_get_settings_pages | Filter | Register settings pages |

Lifecycle Hooks

| Hook | Type | When | |------|------|------| | woocommerce_init | Action | WooCommerce initialized | | woocommerce_loaded | Action | WooCommerce classes loaded | | before_woocommerce_init | Action | Before WC initializes (declare features here) | | woocommerce_after_register_taxonomy | Action | After taxonomies registered |

Hook Patterns

Conditional Hook Registration

Register hooks only when needed:

  • is_admin() — admin-only hooks
  • wp_doing_ajax() — AJAX-only hooks
  • is_checkout(), is_cart() — page-specific hooks

Class-Based Hook Registration

Use class methods as callbacks: add_action( 'hook', [ $this, 'method' ] ) or add_action( 'hook', [ __CLASS__, 'static_method' ] )

Removing WooCommerce Default Behavior

remove_action() / remove_filter() with the exact callback and priority that was used to add it. For class methods on singletons, reference the instance: remove_action( 'hook', [ WC()->structured_data, 'method' ] )

Dynamic Hook Names

WooCommerce uses dynamic hooks based on context:

  • woocommerce_product_get_{$prop} — getter filter for any product property
  • woocommerce_order_status_{$status} — status-specific action
  • woocommerce_widget_{$widget_id}_args — widget-specific filter

Best Practices

  • Always specify $accepted_args when your callback needs more than one argument
  • Use late priorities when you need the final value (after other plugins have filtered)
  • Prefer add_filter over directly modifying globals
  • Use has_action() / has_filter() to check if a hook is already registered
  • Never call do_action() / apply_filters() on WooCommerce core hooks from your code (fire your own hooks instead)
  • Prefix your custom hook names: do_action( 'my_extension_after_process', $data )

Fetch the WooCommerce hook reference for current hook names, parameters, and deprecation notices before implementing.

Compartilhar X LinkedIn