WooCommerce Print Invoices / Packing Lists includes several actions and filters to customize your invoices and packing lists.
Document Template Actions
↑ Back to topwp_pip_head
Params: $type, $document, $order
Fires inside the document’s <head>
element.
wc_pip_styles
Params: None
Fires inside the document’s <style>
element to allow for custom CSS.
Example: Adding a thumbnail column to documents with styles
wc_pip_before_header
Params: $type, $action, $document, $order
Fires before the document’s header.
wc_pip_header
Params: $type, $action, $document, $order
Fires inside the document’s header after company information.
wc_pip_after_customer_addresses
Params: $type, $action, $document, $order
Fires after the customer’s address is printed on the document.
wc_pip_after_header
Params: $type, $action, $document, $order
Fires after the document’s header.
wc_pip_before_body
Params: $type, $action, $document, $order
Fires before the document’s body (order table).
wc_pip_after_body
Params: $type, $action, $document, $order
Fires after the document’s body (order table).
wc_pip_order_details_after_customer_details
Params: $type, $action, $document, $order
Fires after customer details.
wc_pip_before_footer
Params: $type, $action, $document, $order
Fires before the document’s footer.
wc_pip_after_footer
Params: $type, $action, $document, $order
Fires after the document’s footer.
Document Template Filters
↑ Back to topwc_pip_document_title
Params: $title, $type, $document, $order
Return: (string) $title
Filters the document’s title.
wc_pip_show_print_dialog
Params: $show_print_dialog
Return: (bool)
Filters if the print dialog should be shown automatically when the document loads. Defaults to true.
Example:
You can disable the automatic print dialog with the following line:
add_filter( 'wc_pip_show_print_dialog', '__return_false' );
wc_pip_billing_address
Params: $billing_address, $type, $order
Return: (string) $billing_address
Filters the customer’s billing address.
wc_pip_shipping_address
Params: $shipping_address, $type, $order
Return: (string) $shipping_address
Filters the customer’s shipping address.
Document Actions
↑ Back to topwc_pip_invoice_number_created
Params: $invoice_number, $order
Fires after an invoice number is created.
wc_pip_order_item_meta_start
Params: $item_id, $item, $order
Fires before order item meta HTML.
wc_pip_order_item_meta_end
Params: $item_id, $item, $order
Fires after order item meta HTML.
wc_pip_print
Params: $type, $order_id, $order_ids
Fires immediately before the document is output for printing.
wc_pip_send_email_{$document_type}
Params: $document
Triggers the document email. $document_type is one of invoice
, packing_list
, or pick_list
.
wc_pip_send_email
Params: $type, $order_id, ~~$order_ids
Fires after the document’s email is sent.
Document Filters
↑ Back to topwc_pip_document_show_shipping_address
Params: $show_shipping_address, $type, $order
Return: (bool)
Filters if the customer shipping address should be shown in the document.
wc_pip_document_show_billing_address
Params: $show_billing_address, $type, $order
Return: (bool)
Filters if the customer billing address should be shown in the document.
wc_pip_document_show_terms_and_conditions
Params: $show_terms_and_conditions, $type, $order
Return: (bool)
Filters if the terms & conditions should be shown in the document.
wc_pip_document_shipping_method
Params: $shipping_method, $type, $order
Return: (string) $shipping_method
Filters the shipping method(s) and returns the formatted method.
Example: Add order delivery dates to documents
wc_pip_document_coupons_used
Params: $coupons, $type, $order
Return: (array) $coupons
Filters the document’s coupons used.
wc_pip_document_customer_details
Params: $customer_details, $order_id, $type
Return: (array) $customer_details
Filter the document’s customer details.
wc_pip_document_customer_note
Params: $customer_note, $order_id, $type
Return: (string) $customer_note
Filter’s the document’s customer note and returns the customer note HTML.
wc_pip_invoice_date
Params: $invoice_date, $order_date, $order_id, type
Return: (string) $invoice_date
Filter’s the invoice date.
wc_pip_invoice_number
Params: $invoice_number, $order_id, $type
Return: (string) $invoice_number
Filters the invoice number and returns the formatted number (with merge tags).
wc_pip_document_header
Params: $header, $order_id, $type
Return: (string) $header
Filters the document header and returns document header HTML.
wc_pip_document_footer
Params: $footer, $order_id, $type
Return: (string) $footer
Filters the document footer and returns document footer HTML.
wc_pip_document_company_logo_max_width
Params: $size, $order_id, $type
Return: (string) $size
Filters the logo max width (returns a string, not integer, for px width).
wc_pip_document_company_logo
Params: $image_html, $image_url, $order_id, $type
Return: (string) $image_html
Filters the company logo and returns the image HTML.
wc_pip_document_company_name
Params: $company_name, $order_id, $type
Return: (string) $company_name
Filters the company name.
wc_pip_document_company_extra_info
Params: $company_extra_info, $order_id, $type
Return: (string) $company_extra_info
Filters the company extra info.
wc_pip_document_company_url
Params: $company_url, $order_id, $type
Return: (string) $company_url
Filters the company url.
wc_pip_document_company_address
Params: $company_address, $order_id, $type
Return: (string) $company_address
Filters the company address.
wc_pip_document_terms_and_conditions
Params: $terms_and_conditions, $order_id, $type
Return: (string) $terms_and_conditions
Filters the return policy.
wc_pip_document_table_headers
Params: $table_headers, $order_id, $type
Return: (array) $table_headers
Filters the table headers.
wc_pip_document_column_widths
Params: $column_widths, $order_id, $type
Return: (array) $column_widths
Filters the table column widths.
wc_pip_order_items_count
Params: $count, $items, $order
Return: (int) $count
Filters the order items count.
wc_pip_document_sort_order_items_key
Params: $sort_key, $order_id, $type
Return: string $sort_key
Filters how items in document tables should be sorted. Defaults to product
to sort products together by category / name.
Example: Change how line items are sorted by document
wc_pip_document_table_rows
Params: table_rows, $items, $order_id, $type
Return: (array) $table_rows
Filters the document’s table rows.
wc_pip_order_item_visible
Params: $item_visible, $item, $type
Return: (bool)
Filters if the order item should be visible on the document. Defaults to true
.
wc_pip_document_table_row_item_data
Params: $item_data, $item, $product, $order_id, $type
Return: (array) $item_data
Filters the table row item data.
wc_pip_document_table_product_class
Params: $product_class, $product
Return: (string) $product_class
Filters the order item product CSS class.
wc_pip_order_item_name
Params: $product_name, $item, $is_visible, $document_type, $product, $order
Return: (string) $product_name
Filters the order item product name HTML.
wc_pip_order_item_weight
Params: $items_weight, $item_id, $item, $product, $order
Return: (float) $items_weight
Filters the total weight of the item in the order (unit weight × quantity).
wc_pip_document_table_row_item_meta_flat
Params: $flat, $product, $item_id, $item, $type, $order
Return: (bool)
Filters if item meta should be displayed flat. Defaults to definition list (item meta is displayed on new lines).
wc_pip_document_table_row_cells
Params: $table_row_cells, $type, $item_id, $item, $product, $order
Return: (string) $table_row_cells
Filters the document table cells.
wc_pip_document_table_footer
Params: $rows, $type, $order_id
Return: (string) $rows
Filters the document table footer.
wc_pip_order_items_total_weight
Params: $formatted_weight, $total_weight, $weight_unit, $order
Return: (string) $formatted_weight
Filters the total weight of items in the order and returns the formatted weight HTML.
wc_pip_invoice_email_subject
Params: $subject, $document
Return: (string) $subject
Filter the invoice email subject.
wc_pip_packing_list_email_subject
Params: $subject, $document
Return: (string) $subject
Filter the packing list email subject.
wc_pip_packing_list_exclude_item
Params: $exclude, $product, $item, $item_data
Return: (bool)
Filters if an order item should be excluded from the packing list.
wc_pip_pick_list_email_subject
Params: $subject, $document
Return: (string) $subject
Filter the pick list email subject.
General Actions
↑ Back to topwc_pip_process_orders_bulk_action_send_email
Params: $document_type, $order_ids
Fires after emails are sent via a bulk action.
wc_pip_process_orders_bulk_action
Params: $action_type, $document
Fires after order bulk action is processed.
General Filters
↑ Back to topwc_pip_can_manage_documents
Params: $capabilities
Return: (array) $capabilities
Filters the user capabilities that can manage documents.
wc_pip_document_types
Params: $types
Return: (array) $types
Filters the document types.
wc_pip_merge_tags
Params: $merge_tags, $context
Return: (array) $merge_tags
Filters the merge tags used for invoice field replacements.
wc_pip_generate_invoice_number_on_order_paid
Params: $generate_invoice
Return: (bool)
Toggles the automatic generation of an invoice number when an order is paid.
wc_pip_my_account_invoice_order_statuses
Params: $order_statuses, $order
Return: (array) $order_statuses
Filters the order statuses valid to display an invoice to the customer on the My Account page.
wc_pip_get_settings_sections
Params: $sections, $wc_pip_settings_instance
Return: (array) $sections
Filters the plugin’s settings sections.
wc_pip_settings_hide_save_button
Params: $hide_save_button, $current_section
Return: (bool)
Filters if the plugin’s settings save button should be hidden. Defaults to true
on the General sub-tab, false
otherwise.
wc_pip_settings
Params: $settings, $current_section, $wc_pip_settings_instance
Return: (array) $settings
Filters the plugin’s settings.
wc_pip_general_settings
Params: $settings, $wc_pip_settings_instance
Return: (array) $settings
Filters the general settings.
wc_pip_invoice_settings
Params: $settings, $wc_pip_settings_instance
Return: (array) $settings
Filters the invoice settings.
wc_pip_packing_list_settings
Params: $settings, $wc_pip_settings_instance
Return: (array) $settings
Filters the packing list settings.
wc_pip_admin_order_actions
Params: $actions
Return: (array) $actions
Filters the admin order actions.a
wc_pip_admin_order_bulk_actions
Params: $actions
Return: (array) $actions
Filters the bulk order actions.
Other snippet examples can be found in the SkyVerge plugin snippet repository.