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

  1. 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
  1. Use this template:

    add_filter( 'hook_name', function ( $param1, $param2 ) {
        // Customize here
        return $param1;
    }, 10, 2 );
    
  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 );

Email

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 type
  • probo_validate_checkout_item_{$uploader_type} - Validate checkout item for specific type
  • probo_store_cart_render_uploader_{$uploader_type} - Render uploader in cart for specific type
  • probo_admin_order_render_uploader_{$uploader_type} - Render uploader in order admin for specific type
  • admin_product_render_uploader_fields_{$uploader_type} - Render product fields for specific type
  • admin_product_save_uploader_fields_{$uploader_type} - Save product fields for specific type
  • probo_uploader_generate_{$uploader_type} - Generate uploader data for specific type
  • probo_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 );