Probo Connect for WooCommerce
Actions & Hooks Reference
This document lists all custom WordPress actions and filters provided by the Probo Connect plugin. These hooks allow developers to customize and extend the plugin's functionality.
Merchant Quick Start
New to hooks? If you're a store owner wanting to customize order processing, pricing, or notifications without touching the plugin code directly, start here.
Most Useful Hooks for Store Owners
| Use Case | Hook | What It Does |
|---|---|---|
| Customize shipping dates | probo_shipping_delivery_dates |
Hide weekends/holidays, limit available dates |
| Adjust rush fees | probo_shipping_overwrite_rush_surcharge |
Add markup or discount to rush surcharges |
| Customize tracking emails | probo_email_tracking_details |
Customize what appears in shipment emails |
| React to order status changes | probo_order_status_change |
Trigger actions when Probo status updates |
| Modify product prices | probo_cart_item_price |
Adjust prices per item |
| Control auto-ordering | probo_order_may_auto_order_{type} |
Prevent orders from auto-submitting for review |
| Customize order IDs | probo_order_payload_filter_order_id |
Add prefix or custom format |
How to Implement
- Create a code snippet in one of these places:
- WordPress Admin > Snippets (if using Code Snippets plugin)
wp-content/mu-plugins/probo-customizations.php(MU-plugin)- Child theme's
functions.php - Your own plug-in
-
Use this template:
add_filter( 'hook_name', function ( $param1, $param2 ) { // Customize here return $param1; }, 10, 2 ); -
Test in a staging environment first!
Quick Examples
Hide weekends from delivery dates:
add_filter( 'probo_shipping_delivery_dates', function ( $dates ) {
return array_filter( $dates, function ( $date ) {
$day = date( 'N', strtotime( $date['date'] ) );
return $day < 6; // Mon-Fri only
});
}, 10, 1 );
Add 20% markup to rush surcharges:
add_filter( 'probo_shipping_overwrite_rush_surcharge', function ( $surcharge, $delivery, $price ) {
return $surcharge 1.2;
}, 10, 3 );
Send notification when order is completed:*
add_action( 'probo_order_status_change_completed', function ( $order_id, $status ) {
wp_mail(
'manager@store.com',
"Order #{$order_id} Completed",
"Order is ready to fulfill!"
);
}, 10, 2 );
Prevent auto-order for large quantities:
add_filter( 'probo_order_may_auto_order_direct_file', function ( $can_auto, $item ) {
if ( $item->get_quantity() > 100 ) {
return false; // Require manual review
}
return $can_auto;
}, 10, 2 );
Code snippets not working?
If your snippet "does nothing", it's almost always one of three things: (1) the hook name is misspelled, (2) the priority/argument count is wrong, or (3) your code loads too late. Check your site's error log for PHP syntax errors.
Action Hooks
Order Status & Events
probo_order_status_change
Fires when any Probo order status changes via API callback.
File: includes/probo/class-probo-actions.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order_id |
int |
WooCommerce order ID |
$status |
string |
New Probo order status |
Example:
add_action( 'probo_order_status_change', function ( $order_id, $status ) {
error_log( "Order {$order_id} changed to status: {$status}" );
}, 10, 2 );
probo_order_status_change_{$status}
Fires when a Probo order reaches a specific status (e.g., probo_order_status_change_completed).
File: includes/probo/class-probo-actions.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order_id |
int |
WooCommerce order ID |
$status |
string |
New Probo order status |
Example:
add_action( 'probo_order_status_change_delivered', function ( $order_id, $status ) {
wp_mail( get_option( 'admin_email' ), 'Order Delivered', "Order #{$order_id} delivered." );
}, 10, 2 );
probo_email_tracking_details
Fires to render tracking details in shipment status email.
File: templates/emails/probo-shipment-status.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order |
WC_Order |
Order object |
$tracking_items |
array |
Tracking information |
$shipping_provider |
string |
Shipping provider name |
$delivery_date |
string |
Expected delivery date |
$plain_text |
bool |
Is plain text email |
$email |
object |
Email object |
Product Sync
probo_connect_import_products
Triggers full product sync (asynchronous).
File: includes/admin/class-probo-products-sync.php
Parameters: None
probo_sync_single_product
Syncs a single product (asynchronous).
File: includes/admin/class-probo-products-sync.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$product_id |
int |
Product ID |
probo_download_product_image
Downloads product image (asynchronous).
File: includes/admin/class-probo-products-sync.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$product_id |
int |
Product ID |
$image_url |
string |
Image URL |
probo_connect_product_updated
Fires after a catalog product has been synced/updated. Use this to run your own logic once a product's data is refreshed from Probo.
File: includes/admin/class-probo-products-sync.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$api_code |
string |
Probo API product code |
$product_id |
int |
Catalog (import) product ID |
$data |
array |
Product data from the Probo API |
$linked_product_ids |
array |
WooCommerce product IDs using this |
probo_connect_import_api_products
Triggers API product import (asynchronous).
File: includes/admin/class-probo-apiproducts-sync.php
Parameters: None
probo_sync_single_api_product
Syncs a single API product (asynchronous).
File: includes/admin/class-probo-apiproducts-sync.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$product_id |
int |
Product ID |
probo_connect_api_product_updated
Fires after an API product has been synced/updated.
File: includes/admin/class-probo-apiproducts-sync.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$customer_code |
string |
Probo customer/API product code |
$product_id |
int |
API product post ID |
$data |
array |
Product data from the Probo API |
$linked_product_ids |
array |
WooCommerce product IDs using this |
Order Actions
woocommerce_order_action_sync_to_probo
Syncs order to Probo API.
File: includes/probo/class-probo-actions.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order |
WC_Order |
Order object |
woocommerce_order_action_fetch_status_probo
Fetches order status from Probo.
File: includes/probo/class-probo-actions.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order |
WC_Order |
Order object |
woocommerce_order_action_probo_cancel_order
Cancels order in Probo.
File: includes/probo/class-probo-actions.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order |
WC_Order |
Order object |
woocommerce_order_action_probo_release_order
Releases order in Probo.
File: includes/probo/class-probo-actions.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order |
WC_Order |
Order object |
woocommerce_order_action_async_fetch_status_probo
Asynchronously fetches order status.
File: includes/probo/class-probo-actions.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order_id |
int |
Order ID |
woocommerce_order_action_probo_log_payload
Logs order payload.
File: includes/probo/class-probo-actions.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order |
WC_Order |
Order object |
Auto Order
woocommerce_checkout_order_processed
Schedules auto-order check after order is processed.
File: includes/probo/class-probo-auto-order-check.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order_id |
int |
Order ID |
probo_async_check_auto_order
Checks if order can be auto-ordered (asynchronous).
File: includes/probo/class-probo-auto-order-check.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order_id |
int |
Order ID |
probo_auto_order
Executes auto-order.
File: includes/probo/class-probo-auto-order-check.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order_id |
int |
Order ID |
Bulk Operations
probo_async_sync_to_probo
Asynchronously syncs order to Probo during bulk operations.
File: includes/probo/class-probo-bulk-sync.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order_id |
int |
Order ID |
Shipping
wc_ajax_connect_shipping
Gets available shipping options.
File: includes/probo/shipping/class-probo-shipping-checkout.php
Parameters: None
wc_ajax_connect_shipping_set
Sets the selected shipping option.
File: includes/probo/shipping/class-probo-shipping-checkout.php
Parameters: None
wc_ajax_connect_shipping_blocks
Gets shipping data for checkout blocks.
File: includes/probo/shipping/class-probo-shipping-checkout.php
Parameters: None
AJAX Handlers
wp_ajax_probo_refresh_shipping_methods
Refreshes available shipping methods.
File: includes/admin/class-probo-settings.php
wp_ajax_probo_check_all_statuses
Checks all order statuses.
File: includes/probo/class-probo-routes.php
wp_ajax_probo_dismiss
Dismisses an admin notice.
File: includes/admin/class-probo-admin-hooks.php
wp_ajax_probo_save_line_reference
Saves line reference via AJAX.
File: includes/frontend/class-probo-hooks.php
wp_ajax_connect_configurator_blocks
Gets configurator block data via AJAX.
File: includes/frontend/class-probo-shortcode.php
wp_ajax_probo_fetch_delivery_options
Fetches delivery options via AJAX.
File: includes/admin/class-probo-order-panel.php
wp_ajax_probo_api_lookup
Performs API product lookup via AJAX.
File: includes/admin/class-probo-product-tab.php
wp_ajax_probo_purge_scheduled_actions
Cancels pending and deletes finished Probo scheduled actions (Maintenance tool).
File: includes/probo/helpers/class-probo-logging.php
Admin Actions
admin_action_probo_sync_products
Handles manual product sync action.
File: includes/admin/class-probo-products-sync.php
admin_action_probo_sync_api_products
Handles manual API product sync action.
File: includes/admin/class-probo-apiproducts-sync.php
admin_action_probo_import_product
Imports product from catalog.
File: includes/admin/class-probo-products-catalog.php
admin_action_probo_refresh_product
Refreshes product data.
File: includes/admin/class-probo-products-catalog.php
admin_action_probo_delete_all_products
Deletes all imported products.
File: includes/admin/class-probo-products-catalog.php
admin_action_probo_update_uploader_status
Updates uploader session status.
File: includes/admin/class-probo-uploader-sessions.php
admin_action_probo_cleanup_uploader_sessions
Cleans up uploader sessions.
File: includes/admin/class-probo-uploader-sessions.php
Uploader Type Actions
probo_save_order_item_meta_{$uploader_type}
Fires when saving order item meta for a specific uploader type during checkout.
File: includes/frontend/class-probo-hooks.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$item |
WC_Order_Item_Product |
Order item being saved |
$uploader_values |
array |
Uploader values from cart |
$order |
WC_Order |
Order object |
Example:
add_action( 'probo_save_order_item_meta_custom_uploader', function ( $item, $uploader_values, $order ) {
$item->add_meta_data( '_custom_uploader_file', $uploader_values['file_id'] );
}, 10, 3 );
probo_email_tracking_details
Renders tracking details in shipment status emails.
File: templates/emails/probo-shipment-status.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order |
WC_Order |
Order object |
$tracking_items |
array |
Tracking information |
$shipping_provider |
string |
Shipping provider name |
$delivery_date |
string |
Expected delivery date |
$plain_text |
bool |
Is plain text email |
$email |
object |
Email object |
Filter Hooks
Order Payload Filters
probo_order_payload_filter_payload
File: includes/probo/helpers/class-probo-order.php
Parameters:
| Parameter | Type | Description |
|---|---|---|
$payload |
array |
Complete order payload |
$order |
WC_Order |
WooCommerce order |
Example:
add_filter( 'probo_order_payload_filter_payload', function ( $payload, $order ) {
$payload['metadata']['source'] = 'custom_integration';
return $payload;
}, 10, 2 );
probo_order_payload_filter_order_id
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order_id |
`string | int` |
Example:
add_filter( 'probo_order_payload_filter_order_id', function ( $order_id ) {
return 'SHOP-' . $order_id;
} );
probo_order_payload_filter_order_reference
Parameters:
| Parameter | Type | Description |
|---|---|---|
$order_reference |
string |
Order reference |
Example:
add_filter( 'probo_order_payload_filter_order_reference', function ( $ref ) {
return 'REF-' . $ref;
}, 10, 1 );
probo_order_payload_filter_delivery_address
Parameters:
| Parameter | Type | Description |
|---|---|---|
$delivery_address |
array |
Address data |
$order |
WC_Order |
WooCommerce order |
Example:
add_filter( 'probo_order_payload_filter_delivery_address', function ( $address, $order ) {
$address['department'] = $order->get_meta( '_delivery_department' );
return $address;
}, 10, 2 );
probo_order_payload_filter_delivery_sender_address
Filters the sender address on the delivery block of the payload.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$sender_address |
array |
Sender address |
$order |
WC_Order |
WooCommerce order |
probo_order_payload_filter_delivery_shipping_method
Filters the shipping method sent in the delivery block.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$shipping_method |
mixed |
Shipping method |
$order |
WC_Order |
WooCommerce order |
probo_order_payload_filter_delivery_date
Filters the requested delivery date on the payload.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$delivery_date |
mixed |
Delivery date |
$order |
WC_Order |
WooCommerce order |
probo_order_payload_filter_packing_slip_urls
Filters the packing slip URLs added to the payload.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$packing_slip_urls |
array |
Packing slip URLs |
probo_order_payload_filter_products
(see below — filters all products) Related per-line filters:
probo_order_payload_filter_configurable_product— filters a single configurable product line.probo_order_payload_filter_fixed_product— filters a single fixed (non-configurable) product line.
probo_order_payload_filter_error_email
Filters error email addresses.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$error_emails |
array |
Email addresses |
probo_order_payload_filter_contact_email
Filters contact email address.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$email |
string |
Email address |
$order |
WC_Order |
WooCommerce order |
probo_order_payload_filter_callback_urls
Filters callback URLs.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$callbacks_urls |
array |
Callback URLs |
probo_order_payload_filter_products
Filters products in order payload.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$products |
array |
Order products |
$order |
WC_Order |
WooCommerce order |
Uploader Type Filters
probo_order_uploader_type_{$uploader_type}
Filters uploader data for specific type during order processing.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$uploader_data |
array |
Default uploader data |
$item |
WC_Order_Item_Product |
Order item |
$uploader_values |
array |
Uploader values from cart |
$order |
WC_Order |
Order object |
Example:
add_filter( 'probo_order_uploader_type_my_uploader', function ( $data, $item, $values, $order ) {
return [
'file_url' => $item->get_meta( '_file_url' ),
'file_name' => $item->get_meta( '_file_name' ),
];
}, 10, 4 );
probo_uploader_generate_{$uploader_type}
Generates uploader data during add-to-cart for specific type.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$cart_item_data |
array |
Cart item data |
Example:
add_filter( 'probo_uploader_generate_my_uploader', function ( $cart_item_data ) {
$cart_item_data['my_uploader'] = [
'file_id' => sanitize_text_field( $_POST['file_id'] ?? '' ),
];
return $cart_item_data;
} );
probo_store_cart_render_uploader_{$uploader_type}
Filters uploader rendering in store cart for specific type.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$cart_item |
array |
Cart item data |
$cart_item_key |
string |
Cart item key |
probo_admin_order_render_uploader_{$uploader_type}
Filters uploader rendering in admin order for specific type.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$item |
WC_Order_Item_Product |
Order item |
$product |
WC_Product |
Product object |
$item_id |
int |
Order item ID |
probo_order_may_auto_order_{$uploader_type}
Checks if item can auto-order for specific uploader type.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$can_auto_order |
bool |
Can auto-order |
$item |
WC_Order_Item_Product |
Order item |
API Response Filters
probo_client_response_filter_configure
Filters configure API response.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$response |
array |
API response data |
probo_client_response_filter_configure_after
Post-processes configure response.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$response |
array |
API response data |
$product |
WC_Product |
Product object |
probo_client_response_filter_price
Filters price API response.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$response |
array |
API response data |
probo_client_response_filter_shippingmethods
Filters shipping methods response.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$response |
array |
API response data |
Shipping Filters
probo_shipping_delivery_dates
Filters all delivery dates.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$delivery_dates |
array |
Delivery date options |
$response |
array |
API response |
probo_shipping_delivery_date
Filters individual delivery date.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$delivery_date |
array |
Delivery date data |
$price_option |
array |
Price option |
probo_shipping_before_delivery_date_parse
Filters shipping prices before parsing.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$prices |
array |
Price data |
probo_shipping_overwrite_rush_surcharge
Overrides rush surcharge calculation.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$rush_surcharge |
float |
Calculated surcharge |
$delivery_date |
array |
Delivery date data |
$price_option |
array |
Price option |
probo_shipping_parsed_response
Filters parsed shipping response.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$response |
array |
Parsed response |
probo_shipping_method
Filters individual shipping method.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$method |
array |
Shipping method |
$delivery |
array |
Delivery data |
probo_shipping_methods
Filters all shipping methods.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$methods |
array |
Shipping methods |
$deliveries |
array |
Delivery options |
probo_shipping_block_render_shipping-methods
Filters shipping methods in checkout blocks.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$data |
array |
Block data |
Cart & Frontend Filters
Looking for cart uploader rendering? That is per uploader type via
probo_store_cart_render_uploader_{$uploader_type}— see Uploader Type Filters.
probo_cart_item_price
Filters cart item price.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$custom_price |
float |
Item price |
$cart_item |
array |
Cart item |
Configurator Block Filters
probo_configurator_block_render_{$section}
Filters configurator block section data. Sections include: deliverymoments, selectedoptions, filespecs, price.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$data |
array |
Product configuration |
probo_configurator_block_render_deliverymoments
Filters delivery moments in configurator shortcode.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$data |
array |
Product data |
probo_configurator_block_render_selectedoptions
Filters selected options in configurator shortcode.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$data |
array |
Product data |
probo_configurator_block_render_filespecs
Filters file specs in configurator shortcode.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$data |
array |
Product data |
probo_configurator_block_render_price
Filters price in configurator shortcode.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$data |
array |
Product data |
probo_shipping_block_render_{$section}
Filters shipping block section data.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$data |
array |
Shipping data |
Product & Admin Filters
probo_product_uploader_type
Registers uploader types for product.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$custom_types |
array |
Custom uploader types |
$product_type |
string |
Product type |
Example:
add_filter( 'probo_product_uploader_type', function ( $types, $product_type ) {
$types['my_uploader'] = [
'label' => 'My Uploader',
'description' => 'Custom uploader implementation',
];
return $types;
}, 10, 2 );
admin_product_render_uploader_fields_{$uploader_type}
Renders product uploader fields in admin for specific type.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$product_id |
int |
Product ID |
admin_product_save_uploader_fields_{$uploader_type}
Saves product uploader fields from admin for specific type.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$product_id |
int |
Product ID |
Checkout & Validation Filters
probo_validate_checkout_item_{$uploader_type}
Validates checkout item for specific uploader type.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$valid |
bool |
Is valid |
$cart_item |
array |
Cart item |
woocommerce_add_to_cart_validation
Validates add-to-cart (from uploader type abstract).
Parameters:
| Parameter | Type | Description |
|---|---|---|
$passed_validation |
bool |
Passed validation |
$product_id |
int |
Product ID |
$quantity |
int |
Quantity |
WordPress & WooCommerce Hooks Used
The plugin integrates with the following standard WordPress and WooCommerce hooks:
WordPress Core
| Hook | Purpose |
|---|---|
plugins_loaded |
Initialize plugin |
admin_init |
Admin initialization |
wp_head |
Output CSS in frontend |
admin_menu |
Register admin menu items |
admin_enqueue_scripts |
Enqueue admin scripts/styles |
wp_enqueue_scripts |
Enqueue frontend scripts |
init |
Post types, taxonomies, AJAX handlers |
admin_notices |
Display admin notices |
show_user_profile |
User profile display |
edit_user_profile |
User edit profile display |
personal_options_update |
Save user profile options |
edit_user_profile_update |
Save user edit profile options |
WooCommerce Settings & Admin
| Hook | Purpose |
|---|---|
woocommerce_settings_tabs_array |
Add settings tabs |
woocommerce_settings_tabs_probo_settings |
Display Probo settings |
woocommerce_sections_probo_settings |
Display settings sections |
woocommerce_update_options_* |
Save settings |
woocommerce_product_data_tabs |
Add product tabs |
woocommerce_product_data_panels |
Display product tab content |
woocommerce_process_product_meta |
Save product fields |
woocommerce_product_after_variable_attributes |
Variation fields |
woocommerce_save_product_variation |
Save variation fields |
manage_edit-shop_order_columns |
Add order columns (legacy) |
manage_woocommerce_page_wc-orders_columns |
Add order columns (HPOS) |
woocommerce_order_list_table_prepare_items_query_args |
Filter orders (HPOS) |
WooCommerce Checkout & Cart
| Hook | Purpose |
|---|---|
woocommerce_before_calculate_totals |
Modify prices |
woocommerce_add_cart_item_data |
Process cart item data |
woocommerce_cart_calculate_fees |
Add fees |
woocommerce_get_item_data |
Modify item data display |
woocommerce_cart_item_quantity |
Modify quantity input |
woocommerce_loop_add_to_cart_link |
Modify add-to-cart link |
woocommerce_after_cart_item_name |
Display after cart item |
woocommerce_checkout_process |
Checkout validation |
woocommerce_checkout_create_order |
Save order |
woocommerce_checkout_create_order_line_item |
Save order item |
woocommerce_add_to_cart |
Cart change |
woocommerce_cart_item_removed |
Item removed |
woocommerce_cart_item_restored |
Item restored |
woocommerce_after_cart_item_quantity_update |
Quantity updated |
woocommerce_checkout_update_order_review |
Address changed |
woocommerce_thankyou |
After order complete |
WooCommerce Orders & Statuses
| Hook | Purpose |
|---|---|
woocommerce_process_shop_order_meta |
Save order meta |
woocommerce_order_actions |
Add order actions |
woocommerce_order_item_meta_end |
Display after order item meta |
woocommerce_after_order_itemmeta |
Display after order item meta |
woocommerce_order_item_get_formatted_meta_data |
Filter item meta display |
woocommerce_order_item_display_meta_key |
Modify meta key label |
wc_order_statuses |
Register order statuses |
woocommerce_reports_order_statuses |
Add to reports |
WooCommerce Products
| Hook | Purpose |
|---|---|
woocommerce_product_class |
Load custom product class |
product_type_selector |
Add product types |
WooCommerce Shipping
| Hook | Purpose |
|---|---|
woocommerce_shipping_methods |
Register shipping methods |
woocommerce_update_options_shipping_* |
Save shipping options |
WooCommerce Emails
| Hook | Purpose |
|---|---|
woocommerce_email_classes |
Register email classes |
Dynamic Hooks
Dynamic hooks are generated at runtime based on configuration, product types, or other variables:
Dynamic Action Hooks
probo_save_order_item_meta_{$uploader_type}- Called when saving order item meta for a specific uploader type (e.g.,probo_save_order_item_meta_direct_file)probo_order_status_change_{$status}- Called when order reaches specific status (e.g.,probo_order_status_change_completed)
Dynamic Filter Hooks
probo_configurator_block_render_{$section}- Filter specific configurator block section (e.g.,probo_configurator_block_render_deliverymoments)probo_shipping_block_render_{$section}- Filter specific shipping block section (e.g.,probo_shipping_block_render_shipping-methods)probo_order_uploader_type_{$uploader_type}- Filter uploader data for specific typeprobo_validate_checkout_item_{$uploader_type}- Validate checkout item for specific typeprobo_store_cart_render_uploader_{$uploader_type}- Render uploader in cart for specific typeprobo_admin_order_render_uploader_{$uploader_type}- Render uploader in order admin for specific typeadmin_product_render_uploader_fields_{$uploader_type}- Render product fields for specific typeadmin_product_save_uploader_fields_{$uploader_type}- Save product fields for specific typeprobo_uploader_generate_{$uploader_type}- Generate uploader data for specific typeprobo_order_may_auto_order_{$uploader_type}- Check auto-order eligibility for specific type
Hook Naming Conventions
Probo hooks follow consistent naming patterns to make them easy to discover and remember:
| Pattern | Purpose |
|---|---|
probo_order_payload_filter_* |
Modify order payload properties |
probo_client_response_filter_* |
Modify API responses |
probo_shipping_* |
Shipping customization |
probo_configurator_block_render_* |
Configurator UI customization |
probo_store_cart_render_* |
Cart display customization |
probo_admin_order_render_* |
Order admin display |
probo_*_uploader_* |
Uploader type handling |
probo_order_status_change_* |
Order status change events |
probo_validate_checkout_item_* |
Checkout validation |
admin_product_*_uploader_fields_* |
Product admin fields |
woocommerce_order_action_* |
Order actions |
Implementation Examples
Extending Product Configuration
Modifying Order Data
// Modify order payload before sending to Probo
add_filter( 'probo_order_payload_filter_order_id', function ( $order_id ) {
return 'SHOP-' . $order_id;
} );
add_filter( 'probo_order_payload_filter_delivery_address', function ( $address, $order ) {
$address['custom_field'] = $order->get_meta( '_custom_delivery_field' );
return $address;
}, 10, 2 );
Handling Order Status Changes
// Listen to all status changes
add_action( 'probo_order_status_change', function ( $order_id, $status ) {
// Handle status change
}, 10, 2 );
// Listen to specific status
add_action( 'probo_order_status_change_completed', function ( $order_id, $status ) {
wp_mail( get_option( 'admin_email' ), 'Order Complete', "Order #{$order_id} is completed!" );
}, 10, 2 );
Customizing Shipping Display
// Modify delivery date labels
add_filter( 'probo_shipping_delivery_date', function ( $date, $price ) {
$date['label'] = date( 'l, F j', strtotime( $date['date'] ) );
return $date;
}, 10, 2 );
// Override rush surcharge
add_filter( 'probo_shipping_overwrite_rush_surcharge', function ( $surcharge, $delivery, $price ) {
return $surcharge * 1.2; // Add 20% markup
}, 10, 3 );