Docs  /  Developer Guide  /  Theme overrides

Theme overrides

Copy any plugin template into your theme. No filter to register; View::render() picks it up automatically.

The pattern

Copy any plugin template into your-theme/order-updates-for-woo/<lowercased-path-after-Templates/>. View::render() picks up your version automatically. Delete the override to revert.

Copy-paste — admin card templates

cp wp-content/plugins/order-updates-for-woo/src/Admin/Orders/Templates/card/header.php \
   wp-content/themes/your-theme/order-updates-for-woo/admin/orders/card/header.php

cp wp-content/plugins/order-updates-for-woo/src/Admin/Orders/Templates/card/footer.php \
   wp-content/themes/your-theme/order-updates-for-woo/admin/orders/card/footer.php

cp wp-content/plugins/order-updates-for-woo/src/Admin/Orders/Templates/card/tabs.php \
   wp-content/themes/your-theme/order-updates-for-woo/admin/orders/card/tabs.php

cp wp-content/plugins/order-updates-for-woo/src/Admin/Orders/Templates/card/note-thread.php \
   wp-content/themes/your-theme/order-updates-for-woo/admin/orders/card/note-thread.php

cp wp-content/plugins/order-updates-for-woo/src/Admin/Orders/Templates/card/participants.php \
   wp-content/themes/your-theme/order-updates-for-woo/admin/orders/card/participants.php

Copy-paste — email templates

# Customer-facing emails
cp wp-content/plugins/order-updates-for-woo/src/Frontend/Notifications/Templates/order-update-notification.php \
   wp-content/themes/your-theme/order-updates-for-woo/frontend/notifications/order-update-notification.php

# Rating follow-up (promoter / detractor)
cp wp-content/plugins/order-updates-for-woo/src/Frontend/Notifications/Templates/rating-followup.php \
   wp-content/themes/your-theme/order-updates-for-woo/frontend/notifications/rating-followup.php

# Staff-facing emails
cp wp-content/plugins/order-updates-for-woo/src/Admin/Notifications/Templates/order-update-notification.php \
   wp-content/themes/your-theme/order-updates-for-woo/admin/notifications/order-update-notification.php

Every overridable template

Plugin pathTheme override path
src/Admin/Orders/Templates/card/header.phporder-updates-for-woo/admin/orders/card/header.php
src/Admin/Orders/Templates/card/footer.phporder-updates-for-woo/admin/orders/card/footer.php
src/Admin/Orders/Templates/card/tabs.phporder-updates-for-woo/admin/orders/card/tabs.php
src/Admin/Orders/Templates/card/tags.phporder-updates-for-woo/admin/orders/card/tags.php
src/Admin/Orders/Templates/card/note-thread.phporder-updates-for-woo/admin/orders/card/note-thread.php
src/Admin/Orders/Templates/card/participants.phporder-updates-for-woo/admin/orders/card/participants.php
src/Admin/Orders/Templates/card/customer-visibility-notice.phporder-updates-for-woo/admin/orders/card/customer-visibility-notice.php
src/Frontend/Notifications/Templates/order-update-notification.phporder-updates-for-woo/frontend/notifications/order-update-notification.php
src/Frontend/Notifications/Templates/rating-followup.phporder-updates-for-woo/frontend/notifications/rating-followup.php
src/Admin/Notifications/Templates/order-update-notification.phporder-updates-for-woo/admin/notifications/order-update-notification.php

Custom override path

add_filter( 'order_updates_for_woo_template_override_candidates', 'my_addon_inject_mu_template_path', 10, 2 );

function my_addon_inject_mu_template_path( array $candidates, string $template_path ): array {
    array_unshift( $candidates, WP_CONTENT_DIR . '/mu-templates/order-updates-for-woo/' . $template_path );
    return $candidates;
}

First existing file wins. Plugin source is always last.

Subject or body wording only? Use WooCommerce → Settings → Emails → <email>. Don’t override a template just to change a sentence.