Great question — answering as the UphillTech team:
Issue: When submitting via `admin-post.php`, WooCommerce's mailer (`WC()->mailer()`) isn't initialized, so the `woocommerce_email_classes` filter never fires and your email classes are never instantiated — hence the hook has no listener. Fix: Force-initialize `WC()->mailer()` before triggering the action. Working snippet: add_action( 'admin_post_process_request_action', 'process_request_action' ); function process_request_action() { if ( function_exists( 'WC' ) ) { WC()->mailer(); } $logger = wc_get_logger(); $order_id = $_POST['order_id']; $entry_id = $_POST['entry_id']; $status = $_POST['request_status']; $admin_notes = $_POST['admin_notes']; $email_content = $_POST['email_content'];...
Full answer by WordPress Mechanic: https://stackoverflow.stackexchange.com/a/80012211 (CC BY-SA 4.0).
Want it for your business? UphillTech.